public SoapUdpSocketAsyncResult( Socket socket, SoapUdpDatagram datagram, AsyncCallback callback, object state ) : base(callback, state) { _socket = socket; _datagram = datagram; }
/// <summary> /// Attempts to receive a datagram. This call blocks until the /// receive completes. /// </summary> internal IAsyncResult BeginReceiveFrom( AsyncCallback callback, object state ) { SoapUdpTransport.Debug( "SoapUdpSocket[" + _localEP.ToString( ) + "] BeginReceive" ); SoapUdpDatagram datagram = new SoapUdpDatagram( ); SoapUdpSocketAsyncResult asyncResult = new SoapUdpSocketAsyncResult( _socket, datagram, callback, state ); _socket.BeginReceiveFrom( datagram.Data, 0, datagram.Data.Length, 0, ref datagram.EndPoint, new AsyncCallback( asyncResult.OnReceive ), null ); return asyncResult; }