0
這是我的套接字代碼的樣子,這是一個UDP連接。爲什麼我的python的socket.shutdown在Windows上工作,但不是Ubuntu?
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(8)
sock.sendto(req, (host, port))
buf = sock.recv(2048)
sock.shutdown(socket.SHUT_RDWR)
sock.close()
這裏是我的堆棧跟蹤
Exception in thread Thread-6:
Traceback (most recent call last):
File "udp_test.py", line 110, in my_method
sock.shutdown(socket.SHUT_RDWR)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 107] Transport endpoint is not connected
我不知道是什麼OS主機運行的相關部分,我想這就是Linux的一番風味。我可以包裝socket.shutdown
[docs]調用嘗試捕獲,一切似乎工作正常。
此問題與Windows和Linux處理套接字的方式有什麼區別嗎?在這裏試圖抓住這個解決方案來包裝sock.shutdown
,還是我會在這個問題上執行令人討厭的問題?