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()
  • 相关阅读:
    QSslError 类
    QNetworkRequest 请求类
    QFTP走了以后QNetworkAccessManager出现了
    Android之SQLite总结
    Android之Handler机制
    Android之SeekBar总结(一)
    Android之测试相关知识点
    Android数据储存之SharedPreferences总结
    android studio的常用快捷键
    BitmapFactory.Options详解
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11704271.html
Copyright © 2011-2022 走看看