2016-11-08 66 views
-1

我创建了一个UDP套接字并将数据发送到未侦听的地址。下次尝试接收数据时,它会失败,并显示错误[WinError 10054] An existing connection was forcibly closed by the remote host。举个例子,这段代码在最后一行会出错。为什么以及如何修复它?尝试从UDP套接字读取时出错

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

修复它?您是否考虑过发送到*正在*听的地址?你造成了一个错误,你有错误。有什么要解决的? – EJP

回答

1

我创建了一个UDP套接字和发送数据到一个地址是不听

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