Socket.ReceiveFrom Metod

Definition

Tar emot ett datagram och lagrar källslutpunkten.

Överlagringar

Name Description
ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Tar emot det angivna antalet byte med data till den angivna platsen för databufferten med hjälp av den angivna SocketFlagsoch lagrar slutpunkten.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Tar emot det angivna antalet byte i databufferten med den angivna SocketFlagsoch lagrar slutpunkten.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Tar emot ett datagram till databufferten med den angivna SocketFlagsoch lagrar slutpunkten.

ReceiveFrom(Byte[], EndPoint)

Tar emot ett datagram till databufferten och lagrar slutpunkten.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Tar emot det angivna antalet byte med data till den angivna platsen för databufferten med hjälp av den angivna SocketFlagsoch lagrar slutpunkten.

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

Parametrar

buffer
Byte[]

En matris av typen Byte som är lagringsplatsen 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.

remoteEP
EndPoint

En referens till en EndPoint av samma typ som slutpunkten för fjärrvärden som ska uppdateras vid lyckad mottagning.

Returer

Antalet mottagna byte.

Undantag

buffer är null.

-eller-

remoteEP ä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 förskjutningsparametern.

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

-eller-

Egenskapen LocalEndPoint har inte angetts.

-eller-

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

Exempel

Följande kodexempel tar emot ett anslutningslöst datagram från en fjärrvärd. Förskjutningen, buffertstorleken och SocketFlags skickas ReceiveFrom till metoden.

public static void ReceiveFrom4()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    // Creates an IpEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);
    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom4() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    ' Creates an IpEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks.  
    s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Kommentarer

Metoden ReceiveFrom läser in data i parametern buffer , returnerar antalet byte som har lästs och samlar in fjärrvärdens slutpunkt från vilken data skickades. Den här metoden är användbar om du tänker ta emot anslutningslösa datagram från en okänd värd eller flera värdar.

Med anslutningslösa protokoll ReceiveFrom läser du det första kodade datagrammet som tas emot i den lokala nätverksbufferten. Om datagrammet som du får är större än storleken på bufferReceiveFrom fyller buffer metoden med så mycket av meddelandet som möjligt och genererar en SocketException. Om du använder ett opålitligt protokoll går överskottsdata förlorade. Om du använder ett tillförlitligt protokoll behålls överskottsdata av tjänstleverantören och du kan hämta dem genom att anropa ReceiveFrom metoden med en tillräckligt stor buffert.

Om inga data är tillgängliga för läsning ReceiveFrom 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 ReceiveFrom 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.

Även om ReceiveFrom det är avsett för anslutningslösa protokoll kan du även använda ett anslutningsorienterat protokoll. Om du väljer att göra det måste du först antingen upprätta en fjärrvärdanslutning genom att anropa Connect metoden eller acceptera en inkommande fjärrvärdanslutning genom att anropa Accept metoden. Om du inte upprättar eller accepterar en anslutning innan du anropar ReceiveFrom metoden får du en SocketException. Du kan också upprätta en standardvärd för ett anslutningslöst protokoll innan du anropar ReceiveFrom metoden.

Med anslutningsorienterade socketar ReceiveFrom läser du så mycket data som är tillgängligt upp till den mängd byte som anges av parametern size . Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot ReceiveFrom slutförs metoden omedelbart och noll byte returneras.

Note

Innan du anropar ReceiveFrommåste du uttryckligen Socket binda till en lokal slutpunkt med hjälp av Bind -metoden. Om du inte gör det, ReceiveFrom kommer att kasta en SocketException. 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

Det AddressFamily som används i ReceiveFrom måste matcha det AddressFamilyEndPoint som används i SendTo.EndPoint

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

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Tar emot det angivna antalet byte i databufferten med den angivna SocketFlagsoch lagrar slutpunkten.

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

Parametrar

buffer
Byte[]

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

size
Int32

Antalet byte som ska ta emot.

socketFlags
SocketFlags

En bitvis kombination av SocketFlags värdena.

remoteEP
EndPoint

En referens till en EndPoint av samma typ som slutpunkten för fjärrvärden som ska uppdateras vid lyckad mottagning.

Returer

Antalet mottagna byte.

Undantag

buffer är null.

-eller-

remoteEP är null.

size är mindre än 0.

-eller-

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

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

Följande kodexempel tar emot ett anslutningslöst datagram från en fjärrvärd. Buffertstorleken och SocketFlags skickas ReceiveFrom till metoden.

public static void ReceiveFrom3()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    // Creates an IPEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, msg.Length, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom3() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    ' Creates an IPEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks. 
    s.ReceiveFrom(msg, msg.Length, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Kommentarer

Metoden ReceiveFrom läser in data i parametern buffer , returnerar antalet byte som har lästs och samlar in fjärrvärdens slutpunkt från vilken data skickades. Den här metoden är användbar om du tänker ta emot anslutningslösa datagram från en okänd värd eller flera värdar.

Den här överlagringen kräver bara att du anger en mottagningsbuffert, antalet byte som du vill ta emot, den nödvändiga SocketFlagsoch en EndPoint som representerar fjärrvärden. Buffertförskjutningen är som standard 0.

Med anslutningslösa protokoll ReceiveFrom läser du det första kodade datagrammet som tas emot i den lokala nätverksbufferten. Om datagrammet som du får är större än storleken på bufferReceiveFrom fyller buffer metoden med så mycket av meddelandet som möjligt och genererar en SocketException. Om du använder ett opålitligt protokoll går överskottsdata förlorade. Om du använder ett tillförlitligt protokoll behålls överskottsdata av tjänstleverantören och du kan hämta dem genom att anropa ReceiveFrom metoden med en tillräckligt stor buffert.

Om inga data är tillgängliga för läsning ReceiveFrom 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 ReceiveFrom 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.

Även om ReceiveFrom det är avsett för anslutningslösa protokoll kan du även använda ett anslutningsorienterat protokoll. Om du väljer att göra det måste du först antingen upprätta en fjärrvärdanslutning genom att anropa Connect metoden eller acceptera en inkommande fjärrvärdanslutning genom att anropa Accept metoden. Om du inte upprättar eller accepterar en anslutning innan du anropar ReceiveFrom metoden får du en SocketException. Du kan också upprätta en standardvärd för ett anslutningslöst protokoll innan du anropar ReceiveFrom metoden.

Med anslutningsorienterade socketar ReceiveFrom läser du så mycket data som är tillgängligt upp till det antal byte som anges av parametern size . Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot ReceiveFrom slutförs metoden omedelbart och noll byte returneras.

Note

Innan du anropar ReceiveFrommåste du uttryckligen Socket binda till en lokal slutpunkt med hjälp av Bind -metoden. Om du inte gör det, ReceiveFrom kommer att kasta en SocketException. 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

Det AddressFamily som används i ReceiveFrom måste matcha det AddressFamilyEndPoint som används i SendTo.EndPoint

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

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Tar emot ett datagram till databufferten med den angivna SocketFlagsoch lagrar slutpunkten.

public:
 int ReceiveFrom(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP);
public int ReceiveFrom(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP);
member this.ReceiveFrom : byte[] * System.Net.Sockets.SocketFlags * EndPoint -> int
Public Function ReceiveFrom (buffer As Byte(), socketFlags As SocketFlags, ByRef remoteEP As EndPoint) 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.

remoteEP
EndPoint

En referens till en EndPoint av samma typ som slutpunkten för fjärrvärden som ska uppdateras vid lyckad mottagning.

Returer

Antalet mottagna byte.

Undantag

buffer är null.

-eller-

remoteEP ä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 ett anslutningslöst datagram från en fjärrvärd. SocketFlags skickas ReceiveFrom till metoden.

public static void ReceiveFrom2()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    // Creates an IpEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom2() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    ' Creates an IpEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks. 
    s.ReceiveFrom(msg, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Kommentarer

Metoden ReceiveFrom läser in data i parametern buffer , returnerar antalet byte som har lästs och samlar in fjärrvärdens slutpunkt från vilken data skickades. Den här metoden är användbar om du tänker ta emot anslutningslösa datagram från en okänd värd eller flera värdar.

Den här överlagringen kräver bara att du anger en mottagningsbuffert, nödvändig SocketFlagsoch en EndPoint som representerar fjärrvärden. Förskjutningen är som standard 0 och storleken är som standard längden på buffertparametern.

Note

Innan du anropar ReceiveFrommåste du uttryckligen Socket binda till en lokal slutpunkt med hjälp av Bind -metoden. Om du inte gör det, ReceiveFrom kommer att kasta en SocketException.

Med anslutningslösa protokoll ReceiveFrom läser du det första kodade datagrammet som tas emot i den lokala nätverksbufferten. Om datagrammet som du får är större än storleken på bufferReceiveFrom fyller buffer metoden med så mycket av meddelandet som möjligt och genererar en SocketException. Om du använder ett opålitligt protokoll går överskottsdata förlorade. Om du använder ett tillförlitligt protokoll behålls överskottsdata av tjänstleverantören och du kan hämta dem genom att anropa ReceiveFrom metoden med en tillräckligt stor buffert.

Om inga data är tillgängliga för läsning ReceiveFrom 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 ReceiveFrom 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.

Även om ReceiveFrom det är avsett för anslutningslösa protokoll kan du även använda ett anslutningsorienterat protokoll. Om du väljer att göra det måste du först antingen upprätta en fjärrvärdanslutning genom att anropa Connect metoden eller acceptera en inkommande fjärrvärdanslutning genom att anropa Accept metoden. Om du inte upprättar eller accepterar en anslutning innan du anropar ReceiveFrom metoden får du en SocketException. Du kan också upprätta en standardvärd för ett anslutningslöst protokoll innan du anropar ReceiveFrom metoden.

Med anslutningsorienterade socketar ReceiveFrom läser du så mycket data som är tillgängligt upp till storleken på buffer. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot ReceiveFrom slutförs metoden omedelbart och noll byte returneras.

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

Det AddressFamily som används i ReceiveFrom måste matcha det AddressFamilyEndPoint som används i SendTo.EndPoint

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

ReceiveFrom(Byte[], EndPoint)

Tar emot ett datagram till databufferten och lagrar slutpunkten.

public:
 int ReceiveFrom(cli::array <System::Byte> ^ buffer, System::Net::EndPoint ^ % remoteEP);
public int ReceiveFrom(byte[] buffer, ref System.Net.EndPoint remoteEP);
member this.ReceiveFrom : byte[] * EndPoint -> int
Public Function ReceiveFrom (buffer As Byte(), ByRef remoteEP As EndPoint) As Integer

Parametrar

buffer
Byte[]

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

remoteEP
EndPoint

En referens till en EndPoint av samma typ som slutpunkten för fjärrvärden som ska uppdateras vid lyckad mottagning.

Returer

Antalet mottagna byte.

Undantag

buffer är null.

-eller-

remoteEP ä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 ett anslutningslöst datagram från en fjärrvärd.

public static void ReceiveFrom1()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    // Creates an IPEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");

    // This call blocks.
    s.ReceiveFrom(msg, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom1() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    ' Creates an IPEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    
    ' This call blocks. 
    s.ReceiveFrom(msg, senderRemote)
    s.Close()

End Sub

Kommentarer

Metoden ReceiveFrom läser in data i parametern buffer , returnerar antalet byte som har lästs och samlar in fjärrvärdens slutpunkt från vilken data skickades. Den här metoden är användbar om du tänker ta emot anslutningslösa datagram från en okänd värd eller flera värdar.

Den här överlagringen kräver bara att du anger en mottagning bufferoch en EndPoint som representerar fjärrvärden. Buffertförskjutningen är som standard 0. Storleken är som standard längden på parametern buffer och socketFlags värdet är Nonesom standard .

Note

Innan du anropar ReceiveFrommåste du uttryckligen Socket binda till en lokal slutpunkt med hjälp av Bind -metoden. Om du inte gör det, ReceiveFrom kommer att kasta en SocketException.

Med anslutningslösa protokoll ReceiveFrom läser du det första kodade datagrammet som tas emot i den lokala nätverksbufferten. Om datagrammet som du får är större än storleken på bufferReceiveFrom fyller buffer metoden med så mycket av meddelandet som möjligt och genererar en SocketException. Om du använder ett opålitligt protokoll går överskottsdata förlorade. Om du använder ett tillförlitligt protokoll behålls överskottsdata av tjänstleverantören och du kan hämta dem genom att anropa ReceiveFrom metoden med en tillräckligt stor buffert.

Om inga data är tillgängliga för läsning ReceiveFrom 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 ReceiveFrom 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.

Även om ReceiveFrom det är avsett för anslutningslösa protokoll kan du även använda ett anslutningsorienterat protokoll. Om du väljer att göra det måste du först antingen upprätta en fjärrvärdanslutning genom att anropa Connect metoden eller acceptera en inkommande fjärrvärdanslutning genom att anropa Accept metoden. Om du inte upprättar eller accepterar en anslutning innan du anropar ReceiveFrom metoden får du en SocketException. Du kan också upprätta en standardvärd för ett anslutningslöst protokoll innan du anropar ReceiveFrom metoden.

Med anslutningsorienterade socketar ReceiveFrom läser du så mycket data som är tillgängligt upp till storleken på buffer. Om fjärrvärden stänger av Socket anslutningen till Shutdown metoden och alla tillgängliga data har tagits emot ReceiveFrom slutförs metoden omedelbart och noll byte returneras.

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

Det AddressFamily som används i ReceiveFrom måste matcha det AddressFamilyEndPoint som används i SendTo.EndPoint

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