我想接收原始 TCP 数据包,然后以相同的工作量将其发回。
它应该看起来像这样:
void OnPacketReceived(TcpPacket p)
{
byte [] body = p.GetBody();
}
注意:我需要 TCP 数据包而不是以太网帧。
我想接收原始 TCP 数据包,然后以相同的工作量将其发回。
它应该看起来像这样:
void OnPacketReceived(TcpPacket p)
{
byte [] body = p.GetBody();
}
注意:我需要 TCP 数据包而不是以太网帧。
如果您将套接字实现为原始套接字,则您可以访问整个数据包(实际上必须自己处理有关数据包的所有内容)。
创建套接字时使用 SocketType.Raw 和 ProtocolType.Raw。
请注意,如果您以这种方式实现套接字,您将不得不处理 TCP 的细节。
作为参考,这里是关于 Socket 类的 MSDN 文档:http: //msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx
您可以使用 pcapDotNet 库。
您需要使用数据包嗅探器,您可以在其中放置您选择的过滤器,并在此基础上也可以响应。
围绕 WinPcap 的 .Net 包装器可以证明对您有帮助。