NetworkStream.EndWrite(IAsyncResult) Метод

Определение

Обрабатывает завершение асинхронной записи.Handles the end of an asynchronous write.

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

Параметры

asyncResult
IAsyncResult

Объект IAsyncResult, который представляет асинхронный вызов.The IAsyncResult that represents the asynchronous call.

Исключения

Параметр asyncResult имеет значение null.The asyncResult parameter is null.

Основной объект Socket закрыт.The underlying Socket is closed.

-или--or- Произошла ошибка в процессе записи в сеть.An error occurred while writing to the network.

-или--or- Произошла ошибка при обращении к сокету.An error occurred when accessing the socket.

Объект NetworkStream закрыт.The NetworkStream is closed.

Примеры

В следующем примере кода в myWriteCallback BeginWrite качестве метода обратного вызова предоставляется.In the following code example, myWriteCallback is provided to BeginWrite as the callback method. EndWrite реализуется в myWriteCallback для завершения асинхронного вызова записи, запущенного BeginWrite .EndWrite is implemented in myWriteCallback to complete the asynchronous write call started by 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


Комментарии

EndWrite завершает операцию асинхронной отправки, запущенную в BeginWrite .EndWrite completes the asynchronous send operation started in BeginWrite.

Перед вызовом необходимо BeginWrite создать метод обратного вызова, который реализует AsyncCallback делегат.Before calling BeginWrite, you need to create a callback method that implements the AsyncCallback delegate. Этот метод обратного вызова выполняется в отдельном потоке и вызывается системой после BeginWrite возврата.This callback method executes in a separate thread and is called by the system after BeginWrite returns. Метод обратного вызова должен принять значение, IAsyncResult возвращенное BeginWrite методом в качестве параметра.The callback method must accept the IAsyncResult returned from the BeginWrite method as a parameter.

В методе обратного вызова вызовите AsyncState свойство IAsyncResult параметра, чтобы получить NetworkStream .Within the callback method, call the AsyncState property of the IAsyncResult parameter to obtain the NetworkStream. После получения объекта NetworkStream можно вызвать EndWrite метод для успешного завершения операции отправки и возврата числа отправленных байтов.After obtaining the NetworkStream, you can call the EndWrite method to successfully complete the send operation and return the number of bytes sent.

EndWriteМетод блокируется до отправки запрошенного числа байтов.The EndWrite method blocks until the requested number of bytes are sent.

Примечание

При получении сообщения IOException Проверьте InnerException свойство, чтобы определить, вызвано ли оно SocketException .If you receive an IOException, check the InnerException property to determine if it was caused by a SocketException. Если это так, используйте ErrorCode свойство для получения конкретного кода ошибки и подробное описание ошибки см. в документации по коду ошибки API Windows Sockets версии 2 .If so, use the ErrorCode property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Применяется к

См. также раздел