2017-07-13 13 views
-2

ソケットを一定時間だけ待機させるにはどうすればいいですか?私はアンドロイドのブロードキャスト受信機からのパケットを期待するクライアントを持っていますが、それはソケットを介してパケットを取得しないときはいつでも永遠に待機します。多分5秒のpythonで特定の受信リクエストをタイムアウトすることは可能ですか? それ多分つまらないが、私はJavaの背景Pythonソケットクライアントの待機時間

def obtain_packet(self): 
     datarecevied = self.GetPCSocket().recv(4096) 
     print datarecevied 
     return str(datarecevied.strip()) 

答えて

1

From the docsから来ています:

socket.settimeout(値)

は、ソケット操作のブロックにタイムアウトを設定します。 value引数は、秒を表す負でない浮動小数点数、またはNoneを指定できます。 floatが指定されている場合、操作が完了する前にタイムアウト期間の値が経過すると、その後のソケット操作によってタイムアウト例外が発生します。タイムアウトをNoneに設定すると、ソケット操作のタイムアウトが無効になります。 s.settimeout(0.0)はs.setblocking(0)と等価です。 s.settimeout(None)はs.setblocking(1)と等価です。

+0

ありがとう –

関連する問題