python中socket+multiprocessing多程式

One of them發表於2018-08-23

sockect的multiprocessing多程式使用

# 多程式.
import socket
import multiprocessing


def func(cnn):
    while True:
        try:
            request = cnn.recv(1024)
            print(request)
            cnn.send(b'%s' % request)

        except ConnectionResetError:
            cnn.close()
            break


if __name__ == '__main__':
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('0.0.0.0', 4444))
    s.listen(5)
    while True:
        try:
            print("開始監聽")
            cnn, addr = s.accept()
            m = multiprocessing.Process(target=func, args=(cnn,))
            m.daemon = True  # daemon True設定為守護即主死子死.
            m.start()  # 開啟一個子程式, func中的while 來接受cnn後續內容.

        except ConnectionResetError:
            pass

        except Exception as e:
            print(e)

相關文章