首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-02-05 
C#能不能直接获取IP数据包class Server{static void Main(string[] args){Console.WriteLine(Server is r

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

热点排行