Socket.EndReceive Metod

Definition

Avslutar en väntande asynkron läsning.

Överlagringar

Name Description
EndReceive(IAsyncResult)

Avslutar en väntande asynkron läsning.

EndReceive(IAsyncResult, SocketError)

Avslutar en väntande asynkron läsning.

EndReceive(IAsyncResult)

Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs

Avslutar en väntande asynkron läsning.

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer

Parametrar

asyncResult
IAsyncResult

En IAsyncResult som lagrar tillståndsinformation och användardefinierade data för den här asynkrona åtgärden.

Returer

Det totala antalet mottagna byte. Metoden returnerar endast noll (0) om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning. Om noll byte begärs kan mottagningsåtgärder slutföras omedelbart eller kanske inte slutföras förrän minst en byte är tillgänglig (men utan att förbruka några data).

Undantag

asyncResult är null.

asyncResult returnerades inte av ett anrop till BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metoden.

EndReceive(IAsyncResult) anropades tidigare för den asynkrona läsningen.

Ett fel uppstod vid försök att komma åt socketen.

-eller-

endast .NET 7+ : Socket har stängts.

.NET Framework, .NET Core och endast .NET 5–6: Socket har stängts.

Kommentarer

Important

Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.

EndReceive slutför åtgärden som startades av BeginReceive. Du måste skicka det IAsyncResult som skapats av det matchande BeginReceive anropet.

Metoden EndReceive blockeras tills data är tillgängliga. Om du använder ett anslutningslöst protokoll EndReceive läser du det första datagrammet som är tillgängligt i den inkommande nätverksbufferten. Om du använder ett anslutningsorienterat protokoll EndReceive läser metoden så mycket data som är tillgängligt upp till det antal byte som du angav i parametern size för BeginReceive metoden. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot EndReceive slutförs metoden omedelbart och noll byte returneras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.

Note

Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Se även

Gäller för

EndReceive(IAsyncResult, SocketError)

Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs
Källa:
Socket.cs

Avslutar en väntande asynkron läsning.

public:
 int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

Parametrar

asyncResult
IAsyncResult

En IAsyncResult som lagrar tillståndsinformation och användardefinierade data för den här asynkrona åtgärden.

errorCode
SocketError

Ett SocketError objekt som lagrar socketfelet.

Returer

Det totala antalet mottagna byte. Metoden returnerar endast noll (0) om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning. Om noll byte begärs kan mottagningsåtgärder slutföras omedelbart eller kanske inte slutföras förrän minst en byte är tillgänglig (men utan att förbruka några data).

Undantag

asyncResult är null.

asyncResult returnerades inte av ett anrop till BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metoden.

EndReceive(IAsyncResult) anropades tidigare för den asynkrona läsningen.

Ett fel uppstod vid försök att komma åt socketen.

-eller-

endast .NET 7+ : Socket har stängts.

.NET Framework, .NET Core och endast .NET 5–6: Socket har stängts.

Kommentarer

Important

Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.

EndReceive slutför åtgärden som startades av BeginReceive. Du måste skicka det IAsyncResult som skapats av det matchande BeginReceive anropet.

Metoden EndReceive blockeras tills data är tillgängliga. Om du använder ett anslutningslöst protokoll EndReceive läser du det första datagrammet som är tillgängligt i den inkommande nätverksbufferten. Om du använder ett anslutningsorienterat protokoll EndReceive läser metoden så mycket data som är tillgängligt upp till det antal byte som du angav i parametern size för BeginReceive metoden. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot EndReceive slutförs metoden omedelbart och noll byte returneras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.

Note

Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.

Se även

Gäller för