模块:socketserver模块(内置模块)(并发原理)
socketserver这个模块主要是为了解决:TCP协议中,服务器不能同时连接多个客户端的问题
而继承的这个类中的self.request等价于原来socket中的conn(conn,addr=sk.accept())
#server层(固定形式)
import socketserver
class MySocket(socketserver.BaseRequestHandler):
def handle(self):# 这个方法的名字是固定的,必须是这个名字
# 收发的逻辑代码
# self.request == conn
msg = self.request.recv(1024).decode('utf-8')
print(msg)
self.request.send(msg.upper().encode('utf-8'))
server = socketserver.TCPServer(('127.0.0.1',8080),MySocket)# 固定的
server.serve_forever()# 开启一个永久性的服务
#client层
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',8080))
msg_s = input('>>>')
sk.send(msg_s.encode('utf-8'))
print(sk.recv(1024).decode('utf-8'))
sk.close()