我正在使用 ruby 套接字,所以我最终尝试将一个 IP 数据包放在一起,然后我拿了一个 ip 数据包并尝试制作一个像它一样的新数据包。
现在我的问题是:如果数据包是:45 00 00 54 00 00 40 00 40 01 06 e0 7f 00 00 01 7f 00 00 01
,这显然是十六进制,所以我将其转换为十进制,然后使用 .pack 方法转换为二进制数据,并将其传递给 send 方法,然后Wireshark
显示给我与我创建的东西非常奇怪的不同,我做错了什么???,我知道,但无法弄清楚:
@packet = 0x4500005400004000400106e07f0000017f000001 #i converted each 32 bits together, not like i wrote
@data = ""
@data << @packet.to_s
@socket.send(@data.unpack(c*).to_s,@address)
还有另一种方法可以解决整个问题吗?例如,我可以直接将要发送的数据写入套接字缓冲区吗?
提前致谢。