1. 服务端
import socket
from threading import Thread
def handle_client(server, client_pool):
while True:
client, addr = server.accept()
print('connect to: ', addr)
client_pool.append(client)
t = Thread(target=msg_handle, args=(client,))
t.setDaemon(True)
t.start()
def msg_handle(client):
while True:
msg = client.recv(100).decode('utf-8')
print('recive', client.getsockname()[0], client.getsockname()[1], ' msg: ', msg)
client.send('recd'.encode('utf-8'))
if __name__ == '__main__':
server = socket.socket()
server.bind(('localhost', 1878))
server.listen(5)
client_pool = []
t = Thread(target=handle_client, args=(server, client_pool,))
t.setDaemon(True)
print('waiting to connect...')
t.start()
while True:
pass
2. 客户端
import socket
if __name__ == '__main__':
client = socket.socket()
client.connect(('localhost', 1878))
while True:
msg = input('input: ')
client.send(msg.encode('utf-8'))