NetworkStream.EndWrite(IAsyncResult) Metoda

Definicja

Obsługuje koniec asynchronicznego zapisu.

public:
 override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)

Parametry

asyncResult
IAsyncResult

Element IAsyncResult reprezentujący wywołanie asynchroniczne.

Wyjątki

Parametr asyncResult to null.

Socket Podstawowy element jest zamknięty.

-lub- Wystąpił błąd podczas zapisywania w sieci.

-lub- Wystąpił błąd podczas uzyskiwania dostępu do gniazda.

Element NetworkStream jest zamknięty.

Przykłady

W poniższym przykładzie myWriteCallback kodu podano BeginWrite metodę wywołania zwrotnego. EndWrite jest implementowany w myWriteCallback celu ukończenia asynchronicznego wywołania zapisu rozpoczętego przez BeginWrite.


// Example of EndWrite
static void myWriteCallBack( IAsyncResult^ ar )
{
   NetworkStream^ myNetworkStream = safe_cast<NetworkStream^>(ar->AsyncState);
   myNetworkStream->EndWrite( ar );
}
// Example of EndWrite
public static void myWriteCallBack(IAsyncResult ar){

     NetworkStream myNetworkStream = (NetworkStream)ar.AsyncState;
     myNetworkStream.EndWrite(ar);
}
' Example of EndWrite
Public Shared Sub myWriteCallBack(ar As IAsyncResult)
   
   Dim myNetworkStream As NetworkStream = CType(ar.AsyncState, NetworkStream)
   myNetworkStream.EndWrite(ar)
End Sub

Uwagi

EndWrite kończy operację wysyłania asynchronicznego uruchomioną w pliku BeginWrite.

Przed wywołaniem BeginWritemetody należy utworzyć metodę wywołania zwrotnego, która implementuje delegata AsyncCallback . Ta metoda wywołania zwrotnego jest wykonywana w osobnym wątku i jest wywoływana przez system po BeginWrite powrocie. Metoda wywołania zwrotnego musi akceptować zwrócone IAsyncResult z BeginWrite metody jako parametr.

W metodzie wywołania zwrotnego wywołaj AsyncState właściwość parametru IAsyncResult , aby uzyskać NetworkStreamwartość . Po uzyskaniu metody można wywołać EndWrite metodę NetworkStream, aby pomyślnie ukończyć operację wysyłania i zwrócić liczbę wysłanych bajtów.

Metoda EndWrite blokuje do momentu wysłania żądanej liczby bajtów.

Uwaga

Jeśli otrzymasz obiekt IOException, sprawdź InnerException właściwość , aby określić, czy została spowodowana przez SocketExceptionelement . Jeśli tak, użyj ErrorCode właściwości , aby uzyskać określony kod błędu i zapoznaj się z dokumentacją kodu błędu interfejsu API Windows Sockets w wersji 2, aby uzyskać szczegółowy opis błędu.

Dotyczy

Zobacz też