Socket.Receive Metod

Definition

Tar emot data från en bunden Socket.

Överlagringar

Name Description
Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags)

Tar emot det angivna antalet byte från en bunden Socket till den angivna förskjutningspositionen för mottagningsbufferten med hjälp av den angivna SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Tar emot det angivna antalet byte data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

Receive(Span<Byte>, SocketFlags)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar med hjälp av den angivna SocketFlags.

Receive(Byte[], SocketFlags)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

Receive(Span<Byte>)

Tar emot data från en bindning Socket till en mottagningsbuffert.

Receive(IList<ArraySegment<Byte>>)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar.

Receive(Byte[])

Tar emot data från en bindning Socket till en mottagningsbuffert.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar med hjälp av den angivna SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplats för mottagna data.

offset
Int32

Positionen i parametern buffer för att lagra mottagna data.

size
Int32

Antalet byte som ska ta emot.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffer är null.

offset är mindre än 0.

-eller-

offset är större än längden på buffer.

-eller-

size är mindre än 0.

-eller-

size är större än längden buffer på minus värdet för parametern offset .

En anropare i samtalsstacken har inte de behörigheter som krävs.

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds utlöser anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Ett fel uppstod vid försök att komma åt socketen. Se Kommentarer nedan. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till det antal byte som anges av storleksparametern. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

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

Receive(Byte[], Int32, Int32, SocketFlags)

Tar emot det angivna antalet byte från en bunden Socket till den angivna förskjutningspositionen för mottagningsbufferten med hjälp av den angivna SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplatsen för mottagna data.

offset
Int32

Platsen där buffer de mottagna data ska lagras.

size
Int32

Antalet byte som ska ta emot.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffer är null.

offset är mindre än 0.

-eller-

offset är större än längden på buffer.

-eller-

size är mindre än 0.

-eller-

size är större än längden buffer på minus värdet för parametern offset .

socketFlags är inte en giltig kombination av värden.

-eller-

Egenskapen LocalEndPoint har inte angetts.

-eller-

Ett operativsystemfel uppstår vid åtkomst till Socket.

En anropare i samtalsstacken har inte de behörigheter som krävs.

Exempel

I följande kodexempel anges en databuffert, en förskjutning, en storlek och en socketflagga innan du tar emot data på en ansluten Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds utlöser anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Ett fel uppstod vid försök att komma åt socketen. Se Kommentarer nedan. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till det antal byte som anges av storleksparametern. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(Span<Byte>, SocketFlags, SocketError)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

public:
 int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parametrar

buffer
Span<Byte>

Ett intervall med byte som är lagringsplatsen för mottagna data.

socketFlags
SocketFlags

En bitvis kombination av uppräkningsvärdena som anger sändnings- och mottagningsbeteenden.

errorCode
SocketError

När den här metoden returnerar innehåller en av uppräkningsvärdena som definierar felkoder för socketen.

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.

Undantag

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du tillhandahåller en mottagningsbuffert. Buffertförskjutningen är som standard 0, storleken är som standard längden på buffertparametern och SocketFlags värdet är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . När tidsgränsvärdet överskrids genererar anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst SocketReceive läser du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(Byte[], Int32, SocketFlags)

Tar emot det angivna antalet byte data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplats för mottagna data.

size
Int32

Antalet byte som ska ta emot.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffer är null.

size överskrider storleken bufferpå .

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Exempel

Följande tar emot de data som finns i bufferoch anger None för SocketFlags.


// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);

while (bytes > 0)
{
  bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}

' Receive the host home page content and loop until all the data is received.

'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)

strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine

Dim i As Integer

While bytes > 0

  bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)

  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)

End While

Kommentarer

Metoden Receive läser in data i parametern buffer och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du anger en mottagningsbuffert, antalet byte som du vill ta emot och det nödvändiga SocketFlags.

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds utlöser anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert slutförs Receive metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll, försök igen din mottagningsåtgärd.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till det antal byte som anges av parameternsize. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(Span<Byte>, SocketFlags)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

public:
 int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer

Parametrar

buffer
Span<Byte>

Ett intervall med byte som är lagringsplatsen för mottagna data.

socketFlags
SocketFlags

En bitvis kombination av uppräkningsvärdena som anger sändnings- och mottagningsbeteenden.

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.

Undantag

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du tillhandahåller en mottagningsbuffert. Buffertförskjutningen är som standard 0, storleken är som standard längden på buffertparametern och SocketFlags värdet är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . När tidsgränsvärdet överskrids genererar anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens Receive buffert slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst SocketReceive läser du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar med hjälp av den angivna SocketFlags.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parametrar

buffers
IList<ArraySegment<Byte>>

En lista med s av ArraySegment<T>typen Byte som innehåller mottagna data.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffers är null.

-eller-

buffers. Antal är noll.

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

Kommentarer

Den här metoden läser in data i parametern buffers och returnerar antalet byte som har lästs. Du kan anropa från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver att du anger en eller flera mottagningsbuffertar. Värdet SocketFlags är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som kommer från fjärrvärdanslutningen Connect som upprättats i metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds genererar anropet Receive en SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst SocketläserReceive du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffers storlek fylls buffers det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(Byte[], SocketFlags)

Tar emot data från en bindning Socket till en mottagningsbuffert med den angivna SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplats för mottagna data.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffer är null.

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Exempel

Följande kodexempel anger en databuffert och SocketFlags för att ta emot data på en ansluten Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest2

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du anger en mottagningsbuffert och nödvändig SocketFlags. Buffertförskjutningen är som standard 0 och storleken är som standard längden på byteparametern.

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll, försök igen din mottagningsåtgärd.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första kodade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(Span<Byte>)

Tar emot data från en bindning Socket till en mottagningsbuffert.

public:
 int Receive(Span<System::Byte> buffer);
public int Receive(Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer

Parametrar

buffer
Span<Byte>

Ett intervall med byte som är lagringsplatsen för mottagna data.

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.

Undantag

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du tillhandahåller en mottagningsbuffert. Buffertförskjutningen är som standard 0, storleken är som standard längden på buffertparametern och SocketFlags värdet är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . När tidsgränsvärdet överskrids genererar anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst SocketReceive läser du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(IList<ArraySegment<Byte>>)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer

Parametrar

buffers
IList<ArraySegment<Byte>>

En lista med s av ArraySegment<T>typen Byte som innehåller mottagna data.

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.

Undantag

Parametern buffers är null.

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

Kommentarer

Den här metoden läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver att du anger en eller flera mottagningsbuffertar.

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som kommer från fjärrvärdanslutningen Connect som upprättats i metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds utlöser anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första kodade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffers storlek fylls buffers det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

Observera 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.

Gäller för

Receive(Byte[])

Tar emot data från en bindning Socket till en mottagningsbuffert.

public:
 int Receive(cli::array <System::Byte> ^ buffer);
public int Receive(byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplats för mottagna data.

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.

Undantag

buffer är null.

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

En anropare i samtalsstacken har inte de behörigheter som krävs.

Exempel

Följande kodexempel tar emot data på en ansluten Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        i = server.Receive(bytes);
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        i = server.Receive(bytes)
        Console.WriteLine(Encoding.UTF8.GetString(bytes))
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest1

Kommentarer

Metoden Receive läser in data i buffertparametern och returnerar antalet byte som har lästs. Du kan anropa Receive från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver bara att du tillhandahåller en mottagningsbuffert. Buffertförskjutningen är som standard 0, storleken är som standard längden på buffertparametern och SocketFlags värdet är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som anländer från fjärrvärden som har upprättats i Connect metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds utlöser anropet Receive ett SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första köade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffer storlek fylls buffer det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Tar emot data från en bindning Socket till listan över mottagningsbuffertar med hjälp av den angivna SocketFlags.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer

Parametrar

buffers
IList<ArraySegment<Byte>>

En lista med s av ArraySegment<T>typen Byte som innehåller mottagna data.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

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.

Undantag

buffers är null.

-eller-

buffers. Antal är noll.

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

Exempel

Följande kodexempel visar hur du tar emot data på en ansluten Socket.


// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
                         new List<ArraySegment<byte>>(2);

byte[] bigBuffer = new byte[1024];

// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 4, 2));

// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 20, 500));

int bytesReceived = mySocket.Receive(recvBuffers);

Console.WriteLine("{0}", ASCII.GetString(bigBuffer));

Kommentarer

Den här metoden läser in data i parametern buffers och returnerar antalet byte som har lästs. Du kan anropa från både anslutningsorienterade och anslutningslösa socketar.

Den här överlagringen kräver att du anger en eller flera mottagningsbuffertar. Värdet SocketFlags är Nonesom standard .

Om du använder ett anslutningsorienterat protokoll måste du antingen anropa Connect för att upprätta en fjärrvärdanslutning eller Accept acceptera en inkommande anslutning innan du anropar Receive. Metoden Receive läser endast data som kommer från fjärrvärdanslutningen Connect som upprättats i metoden eller Accept . Om du använder ett anslutningslöst protokoll kan du också använda ReceiveFrom metoden. ReceiveFrom gör att du kan ta emot data som anländer från valfri värd.

Om inga data är tillgängliga för läsning Receive blockeras metoden tills data är tillgängliga, såvida inte ett timeout-värde har angetts med hjälp Socket.ReceiveTimeoutav . Om tidsgränsvärdet överskreds genererar anropet Receive en SocketException. Om du är i icke-blockerande läge och det inte finns några tillgängliga data i protokollstackens buffert Receive slutförs metoden omedelbart och genererar en SocketException. Du kan använda egenskapen Available för att avgöra om data är tillgängliga för läsning. När Available är icke-noll försöker du ta emot åtgärden igen.

Om du använder en anslutningsorienterad SocketReceive läser metoden så mycket data som är tillgängligt, upp till buffertens storlek. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot Receive slutförs metoden omedelbart och noll byte returneras.

Om du använder ett anslutningslöst Socketläser Receive du det första kodade datagrammet från måladressen Connect som du anger i -metoden. Om datagrammet som du får är större än parameterns buffers storlek fylls buffers det med den första delen av meddelandet, överskottsdata går förlorade och en SocketException genereras.

Note

Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

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