尝试从UDP套接字读取时出错

时间:2016-11-08 22:30:50

标签: python-3.x sockets udp python-3.4

我创建一个UDP套接字并将数据发送到一个没有侦听的地址。下次我尝试接收数据时,它会因错误[WinError 10054] An existing connection was forcibly closed by the remote host而失败。例如,此代码将在最后一行出错。为什么以及如何解决?

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(bytes("A", 'utf-8'), ("127.0.0.1", 5000))
s.recvfrom(128)

1 个答案:

答案 0 :(得分:1)

  

我创建了一个UDP套接字并将数据发送到一个没有收听的地址

问题的答案就在于此。只需确保有服务器端逻辑向您发送数据。 否则操作系统会向您的应用程序发送一条ICMP消息,说明该端口没有任何监听,这将触发您正在报告的[WinError 10054]。顺便说一下,UDP本质上是一种无连接协议,错误信息可能不准确。