通过LAN中的Python套接字在两台计算机之间进行通信失败

时间:2015-10-12 01:21:41

标签: python sockets networking udp

LAN中连接到无线路由器的两台计算机,一个IP地址是192.168.1.106(服务器),另一个是192.168.1.107(客户端),两台计算机上的网关都是192.168.1.1(路由器本身) 。

两台计算机可以在两个方向上进行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()

1 个答案:

答案 0 :(得分:0)

您是否在两个comoutera上打开防火墙上的UDP端口?