zoukankan      html  css  js  c++  java
  • python_网络编程socketserver模块实现多用户通信

    服务端:

    import socketserver
    
    class MyServer(socketserver.BaseRequestHandler):
        def handle(self):   #在这个函数里面编写发送和接收的语句,方法名必须为handle
    
            self.request.sendall('请输入内容:'.encode('utf-8'))  #向所有连接的客户端发送消息
            while True:
                msg = self.request.recv(1024).decode('utf-8')
                if msg == 'q':
                    break
                print(msg)
                info = input('>>>')
                self.request.send(info.encode('utf-8'))
    
    if __name__ == '__main__':
        server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer)   #设置服务器地址和端口号
        server.serve_forever()      #持续与客户端通信

    客户端1:

    import socket
    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))
    
    qqq = sk.recv(1024)
    print(qqq.decode('utf-8'))
    
    while True:
        msg = input('>>>')
        if msg == 'q':
            sk.send(b'q')
            break
        sk.send(('王佃超:{}'.format(msg)).encode('utf-8'))
        ret = sk.recv(1024).decode('utf-8')
        print(ret)
    
    sk.close()

    客户端2:

    import socket
    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))
    
    qqq = sk.recv(1024)
    print(qqq.decode('utf-8'))
    
    while True:
        msg = input('>>>')
        if msg == 'q':
            sk.send(b'q')
            break
        sk.send(('尹洪飞:{}'.format(msg)).encode('utf-8'))
        ret = sk.recv(1024).decode('utf-8')
        print(ret)
    
    sk.close()
  • 相关阅读:
    .NET生成CSV文件
    Codeforces Round #552 (Div. 3) A题
    位运算介绍
    Codeforces Round #552 (Div. 3) F题
    POJ—1321(棋盘问题)
    Codeforces Round #552 (Div. 3) C题
    Codeforces Round #553 (Div. 2) A题
    Codeforces Round #553 (Div. 2) C题
    Codeforces Round #553 (Div. 2) B题
    Codeforces Round #552 (Div. 3) D题
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11704271.html
Copyright © 2011-2022 走看看