我在我的windows 8机器上玩原始套接字,我创建了一个套接字,如下所示。
s=socket(AF_INET,SOCK_RAW,IPPROTO_TCP)
s.bind((gethostname(),0)) s.ioctl(SIO_RCVALL,RCVALL_ON)
但在绑定行,python却抛出了如下异常
OSError: [WinError 10022] An invalid argument was supplied
但使用IPPROTO_UDP作为第三个参数时,工作正常。
我也有一台运行Windows 10On的aws机器,用同样的第三个参数(IPPROTO_TCP)也能正常工作。
我很困惑,为什么会出现这个错误?