Python

無法連接到 LAN 上的 python 伺服器

  • December 13, 2015

所以我有這個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.pyvia )這是回溯:telnet``server.py

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因為埠而誤認為它們12000(我相信LLC在上面執行)。UDP

看起來這不起作用,因為您已在客戶端腳本中設置serverName為,但伺服器正在偵聽..3``.2

我也將忽略 Python 中的駱駝外殼;)

引用自:https://serverfault.com/questions/742762