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 |
---|---|
asyncResult ist NULL (Nothing in Visual Basic). |
|
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. |
|
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