如何编程拦截80端口的所有数据包?
最好能有一个小的Demo

解决方案 »

  1.   

    以写过一个拦截MSN端口的数据包,刚找了一下没找到,不知道放在什么地方了。
    你到网上搜搜看。
      

  2.   

    //使用TIDUDPSERVER控件   
      //在USE中手工加入IdSocketHandle   
      unit   Unit1;   
        
      interface   
        
      uses   
          Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,   
          Dialogs,   StdCtrls,   IdBaseComponent,   IdComponent,   IdUDPBase,   IdUDPServer,   
          IdSocketHandle,   WinSock;   
        
      type   
          TForm1   =   class(TForm)   
              IdUDPServer1:   TIdUDPServer;   
              Memo1:   TMemo;   
              Button1:   TButton;   
              procedure   IdUDPServer1UDPRead(Sender:   TObject;   AData:   TStream;   
                  ABinding:   TIdSocketHandle);   
              procedure   Button1Click(Sender:   TObject);   
              procedure   FormCreate(Sender:   TObject);   
              procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);   
          private   
              {   Private   declarations   }   
          public   
              {   Public   declarations   }   
          end;   
        
      var   
          Form1:   TForm1;   
        
      implementation   
        
      {$R   *.dfm}   
      var   
          s   :   integer;   
        
      procedure   TForm1.IdUDPServer1UDPRead(Sender:   TObject;   AData:   TStream;   
          ABinding:   TIdSocketHandle);   
      var   
          t   :   string;   
      begin   
          adata.Position   :=   0;   
          setlength   (t,adata.size);   
          adata.Read(t[1],adata.Size);   
          memo1.Lines.Add(t);   
      end;   
        
      procedure   TForm1.Button1Click(Sender:   TObject);   
      var   
          addr   :   sockaddr_in;   
          t   :   string;   
      begin   
          t   :=   'abc';   
          addr.sin_family   :=   AF_INET;   
          addr.sin_port   :=   htons(1000);   
          addr.sin_addr.S_addr   :=   inet_addr('127.0.0.1');   
          sendto   (s,t[1],length(t),0,addr,sizeof(addr));   
      end;   
        
      procedure   TForm1.FormCreate(Sender:   TObject);   
      var   
          wsData   :   WSAData;   
      begin   
          WSAStartup   ($0101,wsData);   
          s   :=   socket   (AF_INET,SOCK_DGRAM,IPPROTO_UDP);   
      end;   
        
      procedure   TForm1.FormClose(Sender:   TObject;   var   Action:   TCloseAction);   
      begin   
          WSACleanup   ();   
      end;   
        
      end.
      

  3.   

    http://www.codeproject.com/internet/smfirewall.asp看看这个