Python socket 通訊,同一臺電腦可以正常訪問而另一臺電腦無法訪問問題
阿新 • • 發佈:2019-01-23
一、官網的例子
服務端程式碼
# Echo server program import socket HOST = '' # Symbolic name meaning all available interfaces PORT = 50007 # Arbitrary non-privileged port 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 1: data = conn.recv(1024) if not data: break conn.sendall(data) conn.close()
客戶端程式碼
# Echo client program import socket HOST = '10.118.158.93' # The remote host PORT = 50007 # The same port as used by the server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) s.sendall('Hello, world') data = s.recv(1024) s.close() print 'Received', repr(data)
本機啟動服務端程式碼,本機啟動客戶端程式碼,可以看見輸出:
Received 'Hello, world' Process finished with exit code 0
本機啟動服務端程式碼,另外一臺電腦啟動客戶端程式碼,卻沒有列印
二、原來不是程式碼的原因,是win7防火牆預設阻止了
1)如下
2)如下
找到python程式,四個地方打上勾,再執行程式碼,可以看見列印輸出了。