Socket.Receive 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.
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
- 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 .
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
Ett fel uppstod vid försök att komma åt socketen.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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.
Har Socket stängts.
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
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.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
Ett fel uppstod vid försök att komma åt socketen.
Har Socket stängts.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()