读书人

C#能不能直接获取IP数据包,该如何解决

发布时间: 2013-02-05 10:40:57 作者: rapoo

C#能不能直接获取IP数据包


class Server
{
static void Main(string[] args)
{
Console.WriteLine("Server is running ... ");
IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
TcpListener listener = new TcpListener(ip, 8500);

listener.Start(); // 开始侦听
Console.WriteLine("Start Listening ...");

Console.WriteLine("\n\n输入\"Q\"键退出。");
ConsoleKey key;
do
{
key = Console.ReadKey(true).Key;
} while (key != ConsoleKey.Q);
}
}
这段代码是在网上找的,我想问能不能直接在里面加上一些代码获取到服务器端收到的IP数据包?
[解决办法]
当然可以,不过是知道端口的TCP包,你上面代码只有一半,只建立连接。没有收包的,看看msdn的TCP Socket通信代码
[解决办法]
Winpcap库可以。
[解决办法]
winpcap比较常用
http://pcapdotnet.codeplex.com/
http://www.codeproject.com/Articles/4217/Packet-Sniffing-with-Winpcap-Functions-Ported-to-a
http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C
http://www.codeproject.com/Articles/8254/Network-Sniffer-and-Connection-Analyzer

raw socket也可以
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.tcplistener.accepttcpclient(v=vs.100).aspx

读书人网 >C#

热点推荐