zoukankan      html  css  js  c++  java
  • 多进程并行实现socket并发代码

    服务端:

    # Author:Winter Liu is coming!
    import socket
    from multiprocessing import Process
    
    
    def func(conn,addr):
        print("{} is connect!".format(addr))
        try:
            while True:
                msg = conn.recv(1024).decode("utf-8")
                conn.send(msg.upper().encode("utf-8"))
        except ConnectionResetError:
            conn.close()
            print("{} is close!".format(addr))
    
    
    # Windows系统下需要加验证
    if __name__ == "__main__": server = socket.socket() server.bind(("127.0.0.1",10002)) server.listen() while True: conn, addr = server.accept()
         # 进程创建 p
    = Process(target=func, args=(conn, addr)) p.start() # 异步非阻塞运行,交给操作系统执行进程,主进程继续执行

    客户端:

    # Author:Winter Liu is coming!
    import socket
    import time
    
    client = socket.socket()
    client.connect(("127.0.0.1", 10002))
    
    while True:
        client.send("hello".encode("utf-8"))
        msg = client.recv(1024).decode("utf-8")
        print(msg)
        time.sleep(0.5)
    
    client.close()

    ------------恢复内容开始------------

    服务端:

    # Author:Winter Liu is coming!
    import socket
    from multiprocessing import Process
    
    
    def func(conn,addr):
        print("{} is connect!".format(addr))
        try:
            while True:
                msg = conn.recv(1024).decode("utf-8")
                conn.send(msg.upper().encode("utf-8"))
        except ConnectionResetError:
            conn.close()
            print("{} is close!".format(addr))
    
    
    if __name__ == "__main__":
        server = socket.socket()
        server.bind(("127.0.0.1",10002))
        server.listen()
    
        while True:
            conn, addr = server.accept()
            p = Process(target=func, args=(conn, addr))
            p.start()

    客户端:

    # Author:Winter Liu is coming!
    import socket
    import time
    
    client = socket.socket()
    client.connect(("127.0.0.1", 10002))
    
    while True:
        client.send("hello".encode("utf-8"))
        msg = client.recv(1024).decode("utf-8")
        print(msg)
        time.sleep(0.5)
    
    client.close()

    ------------恢复内容结束------------

  • 相关阅读:
    【NOIP2006T】作业调度方案
    「NOIP2012P」寻宝
    51Nod1084 矩阵取数问题 V2
    51Nod1294 修改数组
    51nod1122 机器人走方格V4
    多项式相关模板#1
    51Nod1514 美妙的序列
    Jzoj5674 香槟
    Jzoj5669 排列
    Jzoj5665 奥立卡的诗
  • 原文地址:https://www.cnblogs.com/nmucomputer/p/12871276.html
Copyright © 2011-2022 走看看