試圖創建我的第一個客戶機 - 服務器應用程序時遇到了錯誤... 此代碼與文檔中的完全相同,但我遇到了問題。Windows 7上的套接字無法連接
服務器:
import socket
HOST = 'localhost'
PORT = 9090
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while True:
data = conn.recv(1024)
if not data: break
print data
conn.close()
客戶:
import socket
HOST = 'localhost'
PORT = 9090
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall('Hello, world')
s.close()
執行後,我看不出在服務器部分的消息print Connected by, addr
和print data
。我使用Windows 7,Comodo防火牆(我試圖關閉防火牆,但它沒有解決問題),Avast Antivirus,Python 2.7。
非常有趣的是,所有的工作正常,並在一瞬間不起作用。
此外,我的服務器應用程序只是凍結,直到客戶端連接到服務器。它可以解決只是使用線程?
對不起,我的英文不好。提前致謝。
嗨!很高興您開始使用套接字工作!但是,如果您對套接字和線程不太熟悉,那麼對您的代碼進行評論就太多了。我可以建議你看看:twisted http://twistedmatrix.com/trac/。一個事件驅動的框架,它會爲你打擾線程!它非常易於使用! – enpenax
wimps框架=)其實,套接字看起來不太複雜 – progerz