私はselect
このように使用します:
while True:
readReady, _, _ = select.select([src, dst], [], [])
for ready in readReady:
if ready == dst:
toRead = dst
toWrite = src
else:
toRead = src
toWrite = dst
toWrite.sendall(toRead.recv(10))
toWrite
また、すべてのデータが送信されるまでブロックしても問題ありません。しかし、select
データがないときにソケットを読み取る準備ができているため、問題はすぐに戻ります。実際にデータがあるまで待つにはどうすればよいですか?
また、print(toRead.recv(10))
空であると表示されます(ブロックするb''
ことを期待していましたが)。select
ソケットはブロッキング モードです。