Socket.EndSend Metod

Definition

Avslutar en väntande asynkron sändning.

Överlagringar

Name Description
EndSend(IAsyncResult)

Avslutar en väntande asynkron sändning.

EndSend(IAsyncResult, SocketError)

Avslutar en väntande asynkron sändning.

EndSend(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 sändning.

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

Parametrar

asyncResult
IAsyncResult

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

Returer

Om det lyckas skickas antalet byte till Socket, annars ett ogiltigt Socket fel.

Undantag

asyncResult är null.

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

EndSend(IAsyncResult) anropades tidigare för den asynkrona sändningen.

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.

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

Om du använder ett anslutningslöst protokoll EndSend blockeras tills datagrammet har skickats. Om du använder ett anslutningsorienterat protokoll EndSend blockeras tills en del av bufferten har skickats. Om returvärdet från EndSend anger att bufferten inte skickades helt anropar du BeginSend metoden igen och ändrar bufferten för att lagra de osedda data.

Det finns ingen garanti för att de data du skickar visas i nätverket omedelbart. För att öka nätverkseffektiviteten kan det underliggande systemet fördröja överföringen tills en betydande mängd utgående data samlas in. Ett lyckat slutförande av BeginSend metoden innebär att det underliggande systemet har haft utrymme för att buffera dina data för en nätverkssändning.

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

Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.

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

EndSend(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 sändning.

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

Parametrar

asyncResult
IAsyncResult

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

errorCode
SocketError

Ett SocketError objekt som lagrar socketfelet.

Returer

Om det lyckas skickas antalet byte till Socket, annars ett ogiltigt Socket fel.

Undantag

asyncResult är null.

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

EndSend(IAsyncResult) anropades tidigare för den asynkrona sändningen.

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.

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

Om du använder ett anslutningslöst protokoll EndSend blockeras tills datagrammet har skickats. Om du använder ett anslutningsorienterat protokoll EndSend blockeras tills en del av bufferten har skickats. Om returvärdet från EndSend anger att bufferten inte skickades helt anropar du BeginSend metoden igen och ändrar bufferten för att lagra de osedda data.

Det finns ingen garanti för att de data du skickar visas i nätverket omedelbart. För att öka nätverkseffektiviteten kan det underliggande systemet fördröja överföringen tills en betydande mängd utgående data samlas in. Ett lyckat slutförande av BeginSend metoden innebär att det underliggande systemet har haft utrymme för att buffera dina data för en nätverkssändning.

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

Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.

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