当前正在尝试实现一个简单的ping程序,以自学C#和.NET中的网络编程。
我设法初始化了一个原始套接字,并正确地建立了一个ICMP回显请求包。运行程序时,Wireshark确认我正在将Echo Request发送到所需的目的地,但是远程计算机将永远不会发送回声回复。我尝试将所有结果都发送到多台计算机(并且可以使用Windows ping实用程序对每台计算机执行ping操作)。我的代码是这样的:
IcmpPacket echoReq = new IcmpPacket;
/*Some code to initialize packet*/
rawSocket.Send(echoReq, destinationIP); //syntax may be wrong, dont have the code infront of me sorry
rawSocket.ReceiveFrom(buffer, remoteEndpoint);
如果有人可以提出任何理由,说明为什么远程计算机不发送任何答复,我将不胜感激。
最佳答案
从问题信息中很难确定。有太多事情可能出错。但是,我将开始检查其中一些内容。
destinationIP
和remoteEndpoint
值可以指向不同的地址。似乎不太可能,但想将其称为关于c# - C#原始套接字接收数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838120/