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

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

所以我有这个 python 服务器,它只返回作为输入的大写句子:

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.pytelnetserver.py

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

现在我使用 Wireshark 嗅探了一些数据包,令人惊讶的是,针对这个数据包的协议是LLCUDP 数据字段是:

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

如果差异很小,我深感抱歉,但我刚刚开始套接字编程,它让我很烦恼。

答案1

首先,因为它是唯一的,SOCK_DGRAM所以UDP您将无法使用。telnetTCP

数据包是UDP。我估计那wireshark只是LLC因为端口12000(我相信LLC在 之上运行UDP)而误认为是 。

看起来这不起作用,因为您已经在客户端脚本中设置了,serverName.3服务器正在监听.2

我也会忽略 Python 中的驼峰式大小写;)

相关内容