Python socket编程-进阶3

实现socket并发

使用 socketserver

 

 

客户端1

import socket

tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect(('localhost', 8081,))

while True:
    msg = input('客户端:')
    if not msg: continue
    tcp.send(msg.encode('utf-8'))
    msg = tcp.recv(1024)
    msg = msg.decode('utf-8')
    print(msg)

 

客户端2

import socket

tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp.connect(('localhost', 8081,))

while True:
    msg = input('客户端:')
    if not msg: continue
    tcp.send(msg.encode('utf-8'))
    msg = tcp.recv(1024)
    msg = msg.decode('utf-8')
    print(msg)

 

服务端

import socketserver

class MyServer(socketserver.BaseRequestHandler):
    """
        self.request  ==== conn
        self.client_address  ==== address
    """

    def handle(self):  # 重写handle方法
        while True:
            try:
                # 1. 接收消息
                data = self.request.recv(1024)
                print(data.decode('utf-8'))
                # 2. 发送消息
                self.request.sendall('successful'.encode('utf-8'))
            except Exception as e:
                print(e)
                break


if __name__ == '__main__':
    tcp = socketserver.ThreadingTCPServer(('localhost', 8081,), MyServer)
    tcp.serve_forever()

 

posted @ 2020-12-31 23:11  leungqingyun  阅读(49)  评论(0编辑  收藏  举报