服务端:(本机测试)
from socket import * from time import * import threading HOST = gethostname() PORT = 2001 ADDR = (HOST,PORT) tcps = socket(AF_INET,SOCK_STREAM) tcps.bind(ADDR) tcps.listen(5) def recv_msg(con): try: while True: message = con.recv(1024).decode() print(message) if message == 'quit': con.close() except ConnectionAbortedError: return '您已经断开连接。' except OSError: return '对方断开了连接' def send_mag(con): try: while True: data = input('>>') con.send(data.encode()) if data == 'quit': con.close() except ConnectionAbortedError: return '您已经断开连接。' except OSError: return '对方断开了连接' while True: print('waiting for connection...') con,addr = tcps.accept() print('...connected from:',addr) r = threading.Thread(target=recv_msg,args=(con,)) s = threading.Thread(target=send_mag,args=(con,)) r.start() s.start() tcps.close()
客户端:
from socket import * from time import * import threading HOST = gethostname() PORT = 2001 ADDR = (HOST,PORT) def recv_msg(con): try: while True: message,a = con.recvfrom(1024) print(message.decode()) if message.decode() == 'quit': con.close() except ConnectionAbortedError: return '您已经断开连接。' except OSError: return '对方断开了连接' def send_mag(con): try: while True: data = input('>>') con.send(data.encode()) if data == 'quit': con.close() except ConnectionAbortedError: return '您已经断开连接。' except OSError: return '对方断开了连接' tcpc = socket(AF_INET,SOCK_STREAM) tcpc.connect(ADDR) r = threading.Thread(target=recv_msg,args=(tcpc,)) s = threading.Thread(target=send_mag,args=(tcpc,)) r.start() s.start()