マルチソケット接続

 マルチソケット接続

この文書は、文書であるhttps://www.cnblogs.com/wodeboke-y/p/11241472.html

後続のコンテンツ。

 

文書上のケース2は、閉塞型ソケットサーバーを提供します

以下は、ノンブロッキング、次のキーポイントです。

解決するためにスレッドを使用して、障害物を受け入れます

ソケットをブロックし、解決setblocking使用

 

#コーディング= UTF-8
#!は/ usr / binに/のenv pythonの
'' '

'''

からソケットインポート *
からの時間インポート CTIMEの
輸入スレッド
インポート時間

HOST = ''
PORT = 2159
BUFSIZ = 1024
ADDR =(HOST、PORT)

tcpSerSock =ソケット(AF_INET、SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
靴下= []  放每个客户端的ソケットは


デフ(ハンドル):
    トゥルーながら
        靴下:
            試してください
                データ= Sを。 RECV(BUFSIZ)  ここでは、プログラムの実行は、ダウン続け
           
除く例外AS:Eは
                続行
            されていない場合
:データは
                socks.remove(S)
                続行
           
s.send('[%のS]、S%'%(CTIME()、データ))


T =スレッディングを.thread(=ターゲット・ハンドル)  #の子スレッド
IF __name__ == '__main__'
    t.start()
    プリント(U ' 私は%sのスレッド'。%threading.current_thread()名)  自体は、メインスレッドである
   
(プリント'接続を待っています...'
    しばらく真
        clientSock、ADDR = tcpSerSock.accept()
        印刷('からの接続:'、ADDR)
        clientSock.setblocking(0)
        socks.append(clientSock)

 

おすすめ

転載: www.cnblogs.com/wodeboke-y/p/11241555.html