小白学python-------------网络编程之基于socketserver实现简单的并发的socket(tcp协议)

服务端

import socketserver

ip = '127.0.0.1'
port = 8080
ADDR = (ip, port)


class MyHandler(socketserver.BaseRequestHandler):
    def handle(self):
        # 通信循环
        # print(self.client_address)
        # print(self.request)# self.requeset = conn 就是建立的连接

        print(self.client_address)
        while True:
            try:
                data = self.request.recv(1024)
                if len(data) == 0:break
                self.request.send(data.upper())
            except ConnectionResetError:
                break



if __name__ == '__main__':
    s = socketserver.ThreadingTCPServer(ADDR, MyHandler, bind_and_activate=True)
    s.serve_forever()  # 代表连接循环
    # 循环建立连接,每建立一个连接就会启动一个线程+调用MyHandler类产生一个对象,
    # 调用该对象下的handle方法专门与刚刚建立好的连接做通信循环
客户端

import socket

phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

phone.connect(('127.0.0.1', 8080))

while True:
    msg = input('客户端输入>>>').strip()
    if len(msg) == 0:continue

    phone.send(msg.encode('utf-8'))

    data = phone.recv(1024)

    print(data.decode('utf-8'))

phone.close()

猜你喜欢

转载自blog.csdn.net/qq_42721964/article/details/82383288