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); }
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; } }