zoukankan      html  css  js  c++  java
  • 2019.10.22 用TCP实现服务端并发接收

    client

    
    
    import socket
    
    client = socket.socket()
    client.connect(
        ('127.0.0.1',8888)
    )
    
    
    while 1:
        msg = input('input>>>')
        if  msg == 'q':
            break
        client.send(msg.encode('utf-8'))
        data = client.recv(1024).decode('utf-8')
        print(data)
    
    client.close()
    
    
    

    server线程解决

    import socket
    from  multiprocessing  import Process,Queue
    import threading
    import socketserver
    
    # q = Queue(4)
    
    server = socket.socket()
    server.bind(
        ('127.0.0.1', 8888)
    )
    server.listen(3)
    
    def se():
    
    
        while 1:
            conn,addr = server.accept()
            print(addr)
    
            while 1:
                try:
                    data = conn.recv(1024).decode('utf-8')
                    print(data)
                    conn.send(data.encode('utf-8'))
    
                except Exception as e:
                    print(e)
                    break
    
            conn.close()
    
    
    
    if __name__ == '__main__':
    
        p1 = threading.Thread(target=se)
        p2 = threading.Thread(target=se)
        p3 = threading.Thread(target=se)
        p1.start()
        p2.start()
        p3.start()
    
    

    server进程解决

    from  multiprocessing  import Process
    import socket
    
    
    
    
    def se(ser):
    
    
        while 1:
    
            # q.put(sb)
            conn,addr = ser.accept()
            print(addr)
    
            while 1:
                try:
                    data = conn.recv(1024).decode('utf-8')
                    print(data)
                    conn.send(data.encode('utf-8'))
    
                except Exception as e:
                    print(e)
                    break
    
            conn.close()
    
    
    
    if __name__ == '__main__':
    
        server = socket.socket()
        server.bind(
            ('127.0.0.1', 8888)
        )
        server.listen(3)
        p1 = Process(target=se,args = (server,))
        p2 = Process(target=se,args = (server,))
        p3 = Process(target=se,args = (server,))
    
    
        p1.start()
        p2.start()
        p3.start()
    
    
  • 相关阅读:
    HDU_oj_1003 Max Sum
    HDU_oj_1002 A+B Problem Ⅱ
    [php] 表单注意事项
    【网络基础】网速认知
    [php扩展] php安装扩展注意事项
    谷歌管理flash禁用与开启
    [php] 接口及方法和抽象类及方法的异同点
    【php】php 生僻知识点认知
    [mysql] Can't read from messagefile
    redis 散列学习要点记录
  • 原文地址:https://www.cnblogs.com/agsol/p/11721903.html
Copyright © 2011-2022 走看看