在 Windows XP 上,我们希望应用程序能够“从”任意 IP4 地址将 UDP 数据包发送到连接到计算机网卡之一的 [私有] 网络。接收计算机应该相信数据包来自不同的设备。
显然socket.sendto()
只会创建继承网卡IP地址的数据包。但是需要哪些额外的硬件(或网卡配置)来完成这项工作?
在 Windows XP 上,我们希望应用程序能够“从”任意 IP4 地址将 UDP 数据包发送到连接到计算机网卡之一的 [私有] 网络。接收计算机应该相信数据包来自不同的设备。
显然socket.sendto()
只会创建继承网卡IP地址的数据包。但是需要哪些额外的硬件(或网卡配置)来完成这项工作?
RAW 套接字或 RAW 以太网套接字可能是最好的解决方案。您可以获得用于 RAW 以太网套接字的 NDIS 驱动程序,然后根据需要在 C 或 .Net 中进行练习。
http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/ms740463(v=vs.85).aspx
RAW Ethernet 意味着您需要为每个数据包构建 Ethernet、IP 和 UDP 标头。