public void Start() { this._socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); this._socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); this._socket.Bind(new IPEndPoint(IPAddress.Any, this._port)); this._socket.DontFragment = true; this._pool = new AsyncSendPool(this._messageBufferSize, this._socket); var e = new SocketAsyncEventArgs(); e.RemoteEndPoint = new IPEndPoint(IPAddress.Any, 0); e.SetBuffer(new byte[this._messageBufferSize], 0, this._messageBufferSize); e.Completed += this.ReceiveCompleted; this.BeginReceive(e); }
public void Stop() { this._socket.Close(); this._socket = null; this._pool = null; }