2015-10-12 44 views
0

兩臺電腦在一個局域網中連接一臺無線路由器,一臺IP地址爲192.168.1.106(服務器),另一臺爲192.168.1.107(客戶端),網關在兩臺電腦都是192.168.1.1(路由器本身)。兩臺電腦之間通過Python套接字在局域網內通信失敗

兩臺計算機可以在兩個方向上ping每個方向,這意味着路由和路由器本身應該沒有問題。但是當我嘗試使用Python UDP套接字時,我失敗了,服務器無法從客戶端獲得任何信息,並且當我更改IP地址時發生了同樣的情況。 (但是,當服務器和客戶機使用本地IP地址的同一臺計算機上,它工作正常,因此代碼應該沒問題)

我使用下面的代碼:

服務器:

import socket 

address = ('192.168.1.106', 5678) # the server listening on address 192.168.1.106 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind(address) 

while True: 
    data, addr = s.recvfrom(2048) 
    if data == "empty": 
     print "no data from client" 
    else: 
     print "received:", data, "from", addr 

s.close() 

客戶端:

import socket 

address = ('192.168.1.106', 5678) # the client send to address 192.168.1.106 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 

while True: 
    msg = raw_input() 
    if not msg: 
     msg = "empty" 
    s.sendto(msg, address) 

s.close() 

回答

0

您是否在兩個comoutera上打開防火牆上的UDP端口?

+0

是的,當然,防火牆允許任何種類的流量 – nonemaw

+0

1)關閉兩個防火牆並測試它。 – Chet

+0

2)發送一個非常小的數據報。也許它正在下降。 – Chet

相關問題