作业29

作业29

利用多进程或多线程实现TCP服务端的并发

客户端

import socket
from multiprocessing import Process
from threading import Thread


def task(num, conn):
    print(num, "run")
    while 1:
        try:
            data = conn.recv(1024)
            if len(data) == 0:
                break
            if data == b"q":
                break
            conn.send(data.upper())
        except ConnectionError:
            break
    conn.close()


obj = socket.socket()
obj.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
obj.bind(("127.0.0.1", 8080))
obj.listen(5)
if __name__ == '__main__':
    while 1:
        conn, cli_adr = obj.accept()
        print(cli_adr)
        # p = Process(target=task, args=(2, conn))
        # p.start()

        t = Thread(target=task, args=(2,conn))
        t.start()

服务端

import socket
obj = socket.socket()
obj.connect(("127.0.0.1", 8080))
while 1:
    data = input("请输入")
    obj.send(data.encode("utf-8"))
    res = obj.recv(1024).decode("utf-8")
    print(res)
原文地址:https://www.cnblogs.com/achai222/p/12781813.html