No.122
オレメモです。
socket受信の待ち受けで処理が一時停止するなら、threading用いた並列処理でsocket受信を実行し、メイン側へはqueueを使って通信する。
socketから受信したデータはqueue.putでメイン側に送る。block=True,time_out=Noneとし、block要因はメイン側での取り出し作業だけなので終了を待つ。
メイン側はqueue.getをtry:配下で実行する。block=Falseとし、queueにデータがあれば取り出し、データが無いかsocket受信側がアクセス中でデータが取り出せないと例外:Emptyになるのでtry:でスルーする。
queueでやりとりするデータはintのNet,SubNet,Universeとレベルデータのnumpy.arrayをタプルにした物とする。タプルに入れ込んだnumpy.arrayをqueueで扱えるかは今後の実験で確認する。
受信したArt-NetのUniverseが対象かどうかはメイン側で判別する。
これならsocketの受信待ちで全体を止めることなく動かせる、といいな。
#Python
socket受信の待ち受けで処理が一時停止するなら、threading用いた並列処理でsocket受信を実行し、メイン側へはqueueを使って通信する。
socketから受信したデータはqueue.putでメイン側に送る。block=True,time_out=Noneとし、block要因はメイン側での取り出し作業だけなので終了を待つ。
メイン側はqueue.getをtry:配下で実行する。block=Falseとし、queueにデータがあれば取り出し、データが無いかsocket受信側がアクセス中でデータが取り出せないと例外:Emptyになるのでtry:でスルーする。
queueでやりとりするデータはintのNet,SubNet,Universeとレベルデータのnumpy.arrayをタプルにした物とする。タプルに入れ込んだnumpy.arrayをqueueで扱えるかは今後の実験で確認する。
受信したArt-NetのUniverseが対象かどうかはメイン側で判別する。
これならsocketの受信待ちで全体を止めることなく動かせる、といいな。
#Python