无法连接到局域网上的python服务器

所以我有这个python服务器,它只是返回input的大写句子:

from socket import * serverPort = 12000 serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('192.168.1.2', serverPort)) print "The server is ready to receive on port: {}".format(serverPort) while 1: message, clientAddress = serverSocket.recvfrom(2048) print clientAddress, message modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress) 

从这个客户端:

 from socket import * serverName = "192.168.1.3" serverPort = 12000 clientSocket = socket(AF_INET, SOCK_DGRAM) message = raw_input("Input lowercase sentence:") clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close() 

一切都按预期在localhost上运行,但是当我在一台机器上执行server.py并在另一台机器上运行client.py时,客户机无法联系server.py
此外,我甚至无法连接到server.py通过在server.py正在运行的同一台机器上的telnet )以下是回溯:

 Connecting To 192.168.1.2...Could not open connection to the host, on port 12000: Connect failed 

现在我用Wireshark嗅探了一些数据包,出乎意料的是,针对这个数据包的协议是LLC而不是UDP ,数据字段是:

 Data: 74:5f:32:20:61:6e:64:72:6f:69:64 [Length: 11] 

我很抱歉,如果差异是微不足道的,但我刚刚开始套接字编程,这是窃听我。

首先, SOCK_DGRAMUDP所以你将不能使用telnet因为它只是TCP

数据包是UDP 。 我期望wireshark只是把它们误认为是LLC因为端口12000LLC运行在我认为的UDP之上)。

看起来这是不工作的,因为你已经在客户端脚本中将serverName设置为.3 ,但服务器正在侦听.2

我也只是忽略Python中的骆驼套;)