Python:如何让客户端文件通过UDP发送和接收消息?

时间:2016-02-22 15:00:09

标签: python network-programming udp ip

我正在使用Kurose和Ross的教科书“计算机网络:自上而下的方法”。

在其中(第2.7节),它通过python程序的示例代码。

UDPClient.py

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

UDPServer.py

from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind((’’, serverPort))
print ”The server is ready to receive”
while 1:
        message, clientAddress = serverSocket.recvfrom(2048)
        modifiedMessage = message.upper()
        serverSocket.sendto(modifiedMessage, clientAddress)

我最初遇到的错误是我在这里通过阅读其他相同代码的问题解决的。从第4行的参数中删除('socket。')

UDPClient.py

from socket import *
serverName = 'hostname'
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()

在此更新的代码上运行python UDPClient.py会导致以下错误...

socket.gaierror: [Errno -2] Name or service not known

我认为这是由于第2行中的'主机名'。另一个问题的答案是说应该有一个IP地址(教科书也建议)和一个答案说用空字符串替换它' '工作。

但是,每当我尝试空字符串或IP地址时,它似乎都没有做任何事情?它不会给出错误,但也不返回任何内容或完成处理命令。无论我是否首先运行UPDServer.py。我相信我错过了一些东西或者没有理解某些东西......我怎么知道使用什么IP? IP(或缺乏)可能是它不起作用的原因吗?如果是这样,我应该使用什么IP以及如何运行UDPClient和UDPServer程序?

0 个答案:

没有答案