原始套接字无法连接

问题描述

我想定义一个原始的udp套接字,但我不能发送它,所以我只是手工写了ip和udp头,源ip和目的ip是127.0.0.1,并使用socket.sendto(),但它总是说套接字未连接

import socket
s = socket.socket(socket.AF_INET,socket.soCK_RAW,socket.IPPROTO_UDP)
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
ip_header  = b'\x45\x00\x00\x1C'  # Version,IHL,Type of Service | Total Length
ip_header += b'\xab\xcd\x00\x00'  # Identification | Flags,Fragment Offset
ip_header += b'\x40\x11\xd1\x01'  # TTL,Protocol | Header Checksum
ip_header += b'\x7f\x00\x00\x01'  # Source Address
ip_header += b'\x7F\x00\x00\x01'  # Destination Address
udp_header  = b'\x1e\x6c\x27\x0f' # Source Port | Destination Port 9999
udp_header  += b'\x00\x08\xbc\x60'  #5999 6999
packet = ip_header + udp_header
destaddr = ("",9999)
s.sendto(packet,destaddr)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)