0
コードの重要な部分は最初の数行です。私はどのくらいの時間の後に戻るには が知りたいです。私はTimerがある時間後に関数を呼び出すことを知っていますが、それを返す方法はわかりません。threading Timer return from function
def rdt_rcv(conn, flag):
t2 = threading.Timer(5.0, rdt_rcv, return, [0, 0, 0, 0])
t2.start()
# if timeout, return
#return None, None, None, None
field1 = conn.recv(BUFFER_SIZE)
field1 = int(field1)
field2 = conn.recv(BUFFER_SIZE)
field2 = int(field2)
if field2 != 0:
global ACK_received
ACK_received = 1
field3 = (conn.recv(BUFFER_SIZE))
field3 = int(field3)
field4 = (conn.recv(BUFFER_SIZE))
field4 = int(field4)
# stop timer
t2.cancel()
return field1, field2, field3, field4
これは、[タイムアウト・オン・関数呼び出し](http://stackoverflow.com/questions/492519/timeout-on-a-function-call)質問のちょうど特殊なケース重複しています。 – matusko