2013-10-22 100 views
1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
host = socket.gethostname() # Get local machine name 
port = 12345   # Reserve a port for your service. 
s.bind((host, port))  # Bind to the port 
s.listen(5)     # Now wait for client connection. 
print "entered loop" 
c, addr = s.accept()  # Establish connection with client. 

我正在使用這段代碼來簡單地創建一個套接字並接受來自Android的連接。夠簡單。
但由於過去幾個小時(沒有更改代碼),python由於某種原因無法創建套接字。我沒有得到任何錯誤,但它永遠停留在s.accept()線上。突然無法創建套接字

我嘗試使用Fing,我的Android上的網絡診斷應用程序查看打開的端口,實際上,Python無法創建/打開套接字。之前,只要我運行代碼並在Fing上重新掃描,我就能夠看到端口打開並在其上測試TCP連接。

有時,隨機在兩者之間,它可以工作一次或兩次。

可能會出現什麼問題?我試圖改變端口。我不知道要調試什麼,因爲沒有任何錯誤!

回答

0

同樣的錯誤發生在我身上。這是因爲沒有關閉Socket。嘗試關閉套接字。 否則,只要你運行,它就會工作一次,然後就會開始引發問題。