Socket.EndSend Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
.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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
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.
.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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay