Socket.EndSendFile(IAsyncResult) Metoda

Definicja

Kończy oczekujące asynchroniczne wysyłanie pliku.

public:
 void EndSendFile(IAsyncResult ^ asyncResult);
public void EndSendFile (IAsyncResult asyncResult);
member this.EndSendFile : IAsyncResult -> unit
Public Sub EndSendFile (asyncResult As IAsyncResult)

Parametry

asyncResult
IAsyncResult

IAsyncResult Obiekt, który przechowuje informacje o stanie dla tej operacji asynchronicznej.

Wyjątki

Tylko platforma .NET 8+ : gniazdo nie jest połączone z hostem zdalnym.

tylko .NET Framework, .NET Core i .NET 5-6: Socket została zamknięta.

asyncResult jest pusty.

asyncResult nie został zwrócony przez wywołanie BeginSendFile(String, AsyncCallback, Object) metody .

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

-lub-

Tylko platforma .NET 7+ : Socket została zamknięta.

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do nowego programowania. Zamiast tego należy użyć Taskodpowiedników opartych na protokole .

EndSendFile kończy operację rozpoczętą przez BeginSend. Musisz przekazać IAsyncResult utworzony przez odpowiednie BeginSend wywołanie.

Jeśli używasz protokołu bez połączenia, EndSendFile blokuje do momentu wysłania datagramu. Jeśli używasz protokołu zorientowanego na połączenie, EndSendFile blokuje do momentu wysłania całego pliku. Nie ma gwarancji, że wysyłane dane będą natychmiast wyświetlane w sieci. Aby zwiększyć wydajność sieci, podstawowy system może opóźnić transmisję do momentu zebrania znacznej ilości danych wychodzących. Pomyślne ukończenie BeginSendFile metody oznacza, że podstawowy system miał miejsce na buforować dane dla wysyłania sieciowego.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy