Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何让客户端文件通过UDP发送和接收消息?_Python_Network Programming_Udp_Ip - Fatal编程技术网

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

Python:如何让客户端文件通过UDP发送和接收消息?,python,network-programming,udp,ip,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:’) cli

我是从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()
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()
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(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()
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)是否可能是其不起作用的原因?如果是这样,我应该使用什么IP以及如何运行UDPClient和UDPServer程序?

尝试
telnet localhost 80
并告诉我什么happens@Arman这似乎很管用,谢谢。有趣的是,我真的尝试过使用另一篇文章中建议的IP。然而,我认为它以前不起作用的原因是因为我在运行服务器之前运行了客户端。首先运行服务器似乎可以解决问题。@Arman该命令导致“尝试127.0.0.1…telnet:connect to address 127.0.0.1:连接被拒绝”您的本地主机出现问题,是否有任何服务或应用程序使用它?尝试关闭localhost的用户,然后再试一次我该怎么做?请记住,我在我大学的电脑上——我不知道这是否会影响任何事情。重要的是,当我在使用本地IP地址运行UDPClient之前运行UDPServer时,它起作用了。