TCP网络编程
服务端
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
import threading
def server(link, address):
'''
:param link: 当前线程处理的链接
:param address: 客户端ip和端口信息,一个二元元组
:return: None
'''
while True:
client_data = link.recv(1024).decode()
if client_data == "exit":
exit("exit")
print('client: ' + str(address) + ' data: ' + str(client_data))
link.sendall('has been save info'.encode())
link.close()
def listen(soc):
while True:
conn, address = soc.accept()
t = threading.Thread(target = server, args = (conn, address))
t.start()
if __name__ == '__main__':
ip_port = ('127.0.0.1', 9999)
soc = socket.socket()
soc.bind(ip_port)
soc.listen(5)
listen(soc)
客户端:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
def client(soc):
while True:
inp = input("input data: ").strip()
if not inp:
continue
soc.sendall(inp.encode())
if inp == "exit":
print("finish!")
break
server_reply = soc.recv(1024).decode()
print(server_reply)
soc.close()
if __name__ == '__main__':
ip_port = ('127.0.0.1', 9999)
soc = socket.socket()
soc.connect(ip_port)
client(soc)