作者: Jintao
日期:2021-11-2
简介: Python TCP Socket 实现 client 与 server 单线程对接聊天服务
- 初步的实现了
Server.py
import socket
import collections
Client = collections.namedtuple('Client', ['name', 'id', 'addr'])
client_info = []
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# print(tcp_server_socket)
tcp_server_socket.bind(("127.0.0.1", 8082))
# 端口 0-65535 0-1024给操作系统使用
tcp_server_socket.listen(5) # 最大挂起的链接数
# 接受数据
print('Server Starting...')
client_socket_id, client_addr = tcp_server_socket.accept()
# Safety Connect
client_name = client_socket_id.recv(1024).decode('utf-8')
print("'{}' has been successfully enter the Conference".format(client_name))
client_info.append(Client(str(client_name), client_socket_id, client_addr))
cond = "success"
client_socket_id.send(cond.encode('utf-8'))
while True:
try:
data = client_socket_id.recv(1024) # 接受最大1024个字节 bytes
print("客户端数据", data.decode('utf-8'))
# client_socket_id.send(data.upper()) # upper: 大写
recv_data = input(">>")
client_socket_id.send(recv_data.encode('utf-8'))
except ConnectionResetError: # 如果客户端断掉的情况
break
client_socket_id.close()
tcp_server_socket.close()