【发布时间】:2012-02-21 22:27:43
【问题描述】:
我正在尝试使用 Packet.Net 发送原始 UDP 数据包,但 device.SendPacket() 函数似乎只接受链路级 PDU,这意味着我必须自己找出源 MAC 地址和目标 MAC 地址。 (使用ARP什么的)
如何使用 Packet.Net 创建一个 IP 数据包,同时为我生成正确的以太网帧?
【问题讨论】:
-
既然你使用的是UDP,你有什么理由不想简单地像往常一样发送它,让低层为你处理一切?
-
@Brad 我目前的原因是我需要从当前计算机上已经绑定的端口发送数据,而我找不到使用 .Net 的方法来执行此操作而不会引发异常。以后我可能还需要更多的控制权。
-
@takteek - 有一个套接字选项允许多个绑定到同一个端口。您应该可以设置
socket.ExclusiveAddressUse = false;来执行此操作。 -
@takteek - 另外,如果您要经历使用 Packet.NET 或 SharpPCAP 来管理它的痛苦,那么为什么还要首先绑定端口呢?
标签: c# ethernet sharppcap packet.net