[英]Receiving ICMP Host Unreachable message on UDP socket in Python
我正在Linux 2.6.38上的Python 2.7中编写一个简单的UDP聊天服务器。
如何在主机(客户端)发送UDP段(如无法访问的服务器)时收到ICMP错误消息?
我试过了
sockFd.setsockopt( socket.IPPROTO_IP, socket.IP_RECVERR, 1 )
但socket.IP_RECVERR未在套接字模块中定义。
我尝试在sockFd.recvfrom上使用超时并再次执行sendto,但这没有帮助。 是否有API来读取主机收到的ICMP错误?
这个问题有点旧,但我会回答它,因为我遇到了同样的问题。
常量IP_RECVERR
在“IN”模块中定义,因此下一个语句应该完成这项工作:
import socket
import IN
sockFd.setsockopt( socket.IPPROTO_IP, IN.IP_RECVERR, 1 )
ICMP错误基本上没用。 如果收到错误,则无法确保另一端未收到该数据包。 如果您没有收到错误,则无法确保另一端确实收到了数据包。 所以几乎没有理由去做这件事。
如果你告诉我们你认为你需要这么做的原因,我们可以告诉你应该做些什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.