次の方法で共有


Socket.ReceiveFrom メソッド

データグラムを受信し、ソース エンドポイントを格納します。

オーバーロードの一覧

データグラムを受信してデータバッファに格納します。さらに、エンドポイントを格納します。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Function ReceiveFrom(Byte(), ByRef EndPoint) As Integer

[C#] public int ReceiveFrom(byte[], ref EndPoint);

[C++] public: int ReceiveFrom(unsigned char __gc[], EndPoint**);

[JScript] public function ReceiveFrom(Byte[], EndPoint) : int;

指定した SocketFlags を使用し、データグラムを受信してデータバッファに格納します。さらに、エンドポイントを格納します。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Function ReceiveFrom(Byte(), SocketFlags, ByRef EndPoint) As Integer

[C#] public int ReceiveFrom(byte[], SocketFlags, ref EndPoint);

[C++] public: int ReceiveFrom(unsigned char __gc[], SocketFlags, EndPoint**);

[JScript] public function ReceiveFrom(Byte[], SocketFlags, EndPoint) : int;

指定した SocketFlags を使用し、指定したバイト数のデータを受信してデータ バッファに格納します。さらに、エンドポイントを格納します。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Function ReceiveFrom(Byte(), Integer, SocketFlags, ByRef EndPoint) As Integer

[C#] public int ReceiveFrom(byte[], int, SocketFlags, ref EndPoint);

[C++] public: int ReceiveFrom(unsigned char __gc[], int, SocketFlags, EndPoint**);

[JScript] public function ReceiveFrom(Byte[], int, SocketFlags, EndPoint) : int;

指定した SocketFlags を使用し、指定したバイト数のデータを受信して、データ バッファ内の指定した位置に格納します。さらに、エンドポイントを格納します。

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Function ReceiveFrom(Byte(), Integer, Integer, SocketFlags, ByRef EndPoint) As Integer

[C#] public int ReceiveFrom(byte[], int, int, SocketFlags, ref EndPoint);

[C++] public: int ReceiveFrom(unsigned char __gc[], int, int, SocketFlags, EndPoint**);

[JScript] public function ReceiveFrom(Byte[], int, int, SocketFlags, EndPoint) : int;

使用例

[Visual Basic, C#, C++] リモート ホストからコネクションレスのデータグラムを受信する例を次に示します。オフセット、バッファ サイズ、および SocketFlagsReceiveFrom メソッドに渡されます。

[Visual Basic, C#, C++] メモ   ここでは、ReceiveFrom のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Public Shared Sub ReceiveFrom4()
    Dim hostEntry As IPHostEntry = Dns.Resolve(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 'ReceiveFrom4


[C#] 
public static void ReceiveFrom4()
{
    IPHostEntry hostEntry = Dns.Resolve(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();
}

[C++] 
static void ReceiveFrom4()
{
    IPHostEntry* hostEntry = Dns::Resolve(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 = __try_cast<EndPoint*>(sender);
    
    // Binding is required with ReceiveFrom calls.
    s->Bind(endPoint);
    Byte msg[]= new Byte[256];
    Console::WriteLine ("SWaiting to receive datagrams from client...");
    // This call blocks.  
    s->ReceiveFrom(msg, 0, msg.Length, SocketFlags::None, &senderRemote);
    s->Close();
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Socket クラス | Socket メンバ | System.Net.Sockets 名前空間