我有以下代碼:如何在recv期間關閉TCP客戶端?
s.settimeout(300)
while notend:
data = s.recv()
datacheck()
...
上面的代碼上的線程中運行,所以如果用戶設定的notend
變量爲False線程將結束。但在這種情況下,它不會立即退出,因爲recv
函數需要300秒退出。如何退出此線程?
# Wait all the threads
for thread in threading.enumerate():
if thread is not threading.currentThread():
thread.join()
你確定這實際上是問題嗎? 'recv'需要一個參數:'socket.recv(bufsize)',否則會引發一個'TypeError'。你能告訴我們更多的代碼嗎? – msvalkon 2013-02-20 09:50:25
是的緩衝區大小在那裏,我只是忘記包括在採樣代碼 – 2013-02-20 09:58:34