Freigeben über


NetworkStream.EndWrite-Methode

Behandelt das Ende eines asynchronen Schreibvorgangs.

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

Syntax

'Declaration
Public Overrides Sub EndWrite ( _
    asyncResult As IAsyncResult _
)
'Usage
Dim instance As NetworkStream
Dim asyncResult As IAsyncResult

instance.EndWrite(asyncResult)
public override void EndWrite (
    IAsyncResult asyncResult
)
public:
virtual void EndWrite (
    IAsyncResult^ asyncResult
) override
public void EndWrite (
    IAsyncResult asyncResult
)
public override function EndWrite (
    asyncResult : IAsyncResult
)

Parameter

  • asyncResult
    Das IAsyncResult, das den asynchronen Aufruf darstellt.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

asyncResult ist NULL (Nothing in Visual Basic).

IOException

Der zugrunde liegende Socket ist geschlossen.

- oder -

Beim Schreiben in das Netzwerk ist ein Fehler aufgetreten.

– oder –

Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

Der NetworkStream ist geschlossen.

Hinweise

EndWrite beendet den asynchronen Sendevorgang, der in BeginWrite gestartet wurde.

Sie müssen eine Rückrufmethode erstellen, die den AsyncCallback-Delegaten implementiert, bevor Sie BeginWrite aufrufen können. Diese Rückrufmethode wird in einem eigenen Thread ausgeführt und vom System aufgerufen, nachdem BeginWrite beendet wurde. Die Rückrufmethode muss das von der BeginWrite-Methode zurückgegebene IAsyncResult als Parameter akzeptieren.

Rufen Sie innerhalb der Rückrufmethode die AsyncState-Eigenschaft des IAsyncResult-Parameters auf, um den NetworkStream abzurufen. Nach dem Abrufen des NetworkStream können Sie die EndWrite-Methode aufrufen, um den Sendevorgang erfolgreich abzuschließen und die Anzahl der gesendeten Bytes zurückzugeben.

Die EndWrite-Methode wird blockiert, bis die angeforderte Anzahl von Bytes gesendet wurde.

Hinweis

Wenn Sie eine IOException erhalten, überprüfen Sie die InnerException-Eigenschaft, um zu bestimmen, ob die Ausnahme von einer SocketException verursacht wurde. Verwenden Sie in diesem Fall die ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen. In MSDN finden Sie in der Dokumentation zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers.

Beispiel

Im folgenden Codebeispiel wird myWriteCallback für BeginWrite als Rückrufmethode bereitgestellt. EndWrite wird in myWriteCallback implementiert, um den asynchronen Schreibvorgang abzuschließen, der von BeginWrite gestartet wurde.

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

public static void myWriteCallBack(IAsyncResult ar){

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

NetworkStream-Klasse
NetworkStream-Member
System.Net.Sockets-Namespace
BeginWrite