Socket.ReceiveAsync 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.
Överlagringar
| Name | Description |
|---|---|
| ReceiveAsync(ArraySegment<Byte>) |
Tar emot data från en ansluten socket. |
| ReceiveAsync(IList<ArraySegment<Byte>>) |
Tar emot data från en ansluten socket. |
| ReceiveAsync(SocketAsyncEventArgs) |
Påbörjar en asynkron begäran om att ta emot data från ett anslutet Socket objekt. |
| ReceiveAsync(ArraySegment<Byte>, SocketFlags) |
Tar emot data från en ansluten socket. |
| ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Tar emot data från en ansluten socket. |
| ReceiveAsync(Memory<Byte>, CancellationToken) |
Tar emot data från en ansluten socket. |
| ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken) |
Tar emot data från en ansluten socket. |
ReceiveAsync(ArraySegment<Byte>)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync(ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)
Parametrar
- buffer
- ArraySegment<Byte>
Bufferten för mottagna data.
Returer
En uppgift som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Gäller för
ReceiveAsync(IList<ArraySegment<Byte>>)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)
Parametrar
- buffers
- IList<ArraySegment<Byte>>
En lista över buffertar för mottagna data.
Returer
En uppgift som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som lästs in i buffertarna mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Parametern buffers var null.
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Kommentarer
Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av Receive(IList<ArraySegment<Byte>>).
Gäller för
ReceiveAsync(SocketAsyncEventArgs)
- Källa:
- Socket.cs
- Källa:
- Socket.cs
- Källa:
- Socket.cs
- Källa:
- Socket.cs
- Källa:
- Socket.cs
Påbörjar en asynkron begäran om att ta emot data från ett anslutet Socket objekt.
public:
bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean
Parametrar
Objektet SocketAsyncEventArgs som ska användas för den här asynkrona socketåtgärden.
Returer
true om I/O-åtgärden väntar. Händelsen Completed på parametern e utlöses när åtgärden har slutförts.
false om I/O-åtgärden slutfördes synkront. I det här fallet Completed utlöses inte händelsen för parametern e och objektet e som skickas som en parameter kan undersökas omedelbart efter att metodanropet returneras för att hämta resultatet av åtgärden.
Undantag
Ett argument var ogiltigt. Egenskaperna Buffer eller BufferList på parametern e måste referera till giltiga buffertar. Den ena eller den andra av dessa egenskaper kan anges, men inte båda samtidigt.
En socketåtgärd pågick redan med hjälp av objektet SocketAsyncEventArgs som anges i parametern e .
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Kommentarer
Metoden ReceiveAsync används på anslutna socketar eller bundna anslutningslösa socketar och används för att läsa inkommande data. Socketens lokala adress måste vara känd.
För bundna anslutningslösa socketar begränsar den här funktionen de adresser som mottagna meddelanden accepteras från. Funktionen returnerar endast meddelanden från den fjärradress som anges i anslutningen. Meddelanden från andra adresser ignoreras tyst.
Egenskapen SocketAsyncEventArgs.SocketFlags på parametern e ger Window Sockets-tjänstprovidern ytterligare information om läsbegäran. Mer information om hur du använder den här parametern finns i System.Net.Sockets.SocketFlags.
Följande egenskaper och händelser i System.Net.Sockets.SocketAsyncEventArgs objektet krävs för att anropa den här metoden:
SocketAsyncEventArgs.Buffer eller SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count om SocketAsyncEventArgs.Buffer har angetts
SocketAsyncEventArgs.Offset om SocketAsyncEventArgs.Buffer har angetts
Anroparen kan ange SocketAsyncEventArgs.UserToken egenskapen till valfritt användartillståndsobjekt som önskas innan metoden anropas ReceiveAsync , så att informationen kan hämtas i motringningsmetoden. Om återanropet behöver mer information än ett enskilt objekt kan en liten klass skapas för att lagra den andra nödvändiga tillståndsinformationen som medlemmar.
För byte stream-style sockets placeras inkommande data i bufferten tills bufferten är fylld, anslutningen stängs eller de internt buffrade data är uttömda.
För meddelandeorienterade sockets placeras ett inkommande meddelande i bufferten upp till den totala storleken på bufferten som är associerad med parametern e . Om meddelandet är större än bufferten fylls bufferten med den första delen av meddelandet.
För anslutningsorienterade socketar ReceiveAsync kan metoden ange den graciösa avslutningen av den virtuella kretsen på ett av två sätt som beror på om socketen är byteström eller meddelandeorienterad. För byteströmmar indikerar noll byte som har lästs en graciös stängning och att inga fler byte någonsin kommer att läsas. För meddelandeorienterade sockets, där ett noll byte-meddelande ofta är tillåtet, används en SocketException med SocketAsyncEventArgs.SocketError värdet för den interna Winsock WSAEDISCON-felkoden (10101) för att indikera en graciös stängning. I vilket fall som helst indikerar en SocketException med SocketAsyncEventArgs.SocketError värdet för den interna Winsock WSAECONNRESET-felkoden (10054) att en avbruten stängning har inträffat.
Se även
Gäller för
ReceiveAsync(ArraySegment<Byte>, SocketFlags)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)
Parametrar
- buffer
- ArraySegment<Byte>
Bufferten för mottagna data.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags-värden som ska användas när du tar emot data.
Returer
En uppgift som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Gäller för
ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)
Parametrar
- buffers
- IList<ArraySegment<Byte>>
En lista över buffertar för mottagna data.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags-värden som ska användas när du tar emot data.
Returer
En uppgift som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Parametern buffers var null.
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Kommentarer
Den här metoden lagrar i aktiviteten som returnerar alla undantag som inte används som metodens synkrona motsvarighet kan utlösa. Om ett undantag lagras i den returnerade aktiviteten utlöses undantaget när aktiviteten väntar. Användningsfel, till exempel ArgumentException, genereras fortfarande synkront. De lagrade undantagen finns i undantagen som genereras av Receive(IList<ArraySegment<Byte>>, SocketFlags).
Gäller för
ReceiveAsync(Memory<Byte>, CancellationToken)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync(Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametrar
- cancellationToken
- CancellationToken
En annulleringstoken som kan användas för att avbryta den asynkrona åtgärden.
Returer
En ValueTask<TResult> som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.
Gäller för
ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
- Källa:
- Socket.Tasks.cs
Tar emot data från en ansluten socket.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametrar
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags-värden som ska användas när du tar emot data.
- cancellationToken
- CancellationToken
En annulleringstoken som kan användas för att avbryta den asynkrona åtgärden.
Returer
En ValueTask<TResult> som representerar den asynkrona mottagningsåtgärden. Värdet för egenskapen Result innehåller det totala antalet byte som läse in buffer mellan noll (0) och antalet begärda byte. Resultatvärdet är noll (0) endast 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
Har Socket stängts.
Ett fel uppstod vid försök att komma åt socketen.
Annulleringstoken avbröts. Det här undantaget lagras i den returnerade aktiviteten.