如果并发量不大的话可以用,毕竟真正的服务器开发还是用Epoll
import socket
import threading
def runThread(*args):
"""
:param args: args[0]客户端连接的文件描述符,args[1]:客户端的IP地址和端口元祖。
:return:
"""
conn = args[0]
address = args[1]
while True:
try:
data = (conn.recv(1024)).decode("UTF-8")
print("{}:{} @ 接收到的内容:{}".format(address[0], str(address[1]), data))
data = str(f"回复内容:{data}")
conn.send(data.encode("UTF-8"))
except Exception as e:
print(f"出现了异常:{e}")
conn.close()
break
socket_server = socket.socket()
socket_server.bind(("127.0.0.1", 8888))
socket_server.listen(128)
while True:
"""
用循环等待客户端连接。
"""
conn, address = socket_server.accept()
print(f"接受了客户端的链接:{address[0]}:{address[1]}")
# 客户端连接上之后创建一个新的线程去处理客户端的发送数据。
threadHand = threading.Thread(target=runThread, args=(conn, address))
threadHand.start()
如果代码有不懂的可以在评论区留言。