用python中的socket和多线程用来实现一个服务端多个客户端构建聊天服务器
server
import threading
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '127.0.0.1'
port = 8888
server_socket.bind((host, port))
server_socket.listen(2)
def handle_socket(sock, addr):
while 1:
try:
res = sock.recv(1024).decode('utf-8')
if not res:
print('关闭', addr)
break
print(res)
word = input()
sock.send(word.encode('utf-8').strip())
except ConnectionResetError as e:
print(e)
print(addr, '关闭')
break
sock.close()
while 1:
# 用线程去处理其他连接用户
conn, address = server_socket.accept()
print(conn, address)
connect = threading.Thread(target=handle_socket, args=(conn, address))
connect.start()
server_socket.close()
client
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '127.0.0.1'
port = 8888
client_socket.connect((host, port))
while 1:
word = input()
client_socket.send(word.encode('utf-8').strip())
data = client_socket.recv(1024).decode('utf-8')
print(data)