예제 #1
0
        public void StartCapture()
        {
            ResetAll();
            State = true;
            InitSocket();
            Sw.Start();
            StateOb Obj = new StateOb();

            Obj.buffer = new byte[4096];
            Listener.BeginReceive(Obj.buffer, 0, Obj.buffer.Length, SocketFlags.None, OnReceive, Obj);
        }
예제 #2
0
 private void OnReceive(IAsyncResult res)
 {
     try
     {
         StateOb ob   = (StateOb)res.AsyncState;
         int     n    = Listener.EndReceive(res);
         byte[]  data = ob.buffer;
         ob.buffer = new byte[4096];
         Listener.BeginReceive(ob.buffer, 0, ob.buffer.Length, SocketFlags.None, OnReceive, ob);
         processPacket(data, n);
     }
     catch (OutOfMemoryException ex)
     {
         Error(ex);
         StopCapture();
     }
     catch (Exception)
     {
         return;
     }
 }