我原来自己写的代码有很多问题,现在贴上老师的源码。
因为原生tcp不能连接多个用户。所以使用socketserver。
固定代码:
import socketserver
class MyServer(socketserver.BaseRequestHandler): # 1 定义一个类 2 类里面继承socketserver.BaseRequestHandler
def handle(self): # 3 类里面定义一个handle方法,handle名称不能变
while 1:
from_client_data = self.request.recv(1024).decode('utf-8') # 这里的这个self.request就相当于conn链接通道
print(from_client_data) # 打印接收到的消息,这里可以加判断,如果接收到的是一个固定的词,就可以break结束通话。
server_input = input('明巍sb说>>>') # 这里的sb我喜欢,这个老师挺幽默,接地气。
self.request.send(server_input.encode('utf-8')) # 给客户端发送消息,这里也可以加判断,如果发送的是一个固定的词,也可以break结束通话。
self.request.close()
if __name__ == '__main__':
ip_port = ('127.0.0.1',8001) #服务端的IP地址和端口
socketserver.TCPServer.allow_reuse_address = True #定义地址和端口重用。
server = socketserver.ThreadingTCPServer(ip_port,MyServer) #绑定IP地址和端口,并且启动我定义的上面这个类
server.serve_forever() #永久的给我执行下去