Socket.ReceiveAsync Metod

Definition

Ö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

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.

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

e
SocketAsyncEventArgs

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 .

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:

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

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.

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

buffer
Memory<Byte>

Bufferten för mottagna 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

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

buffer
Memory<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.

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

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