次の方法で共有


UdpClient.Receive(IPEndPoint) メソッド

定義

リモート ホストが送信した UDP データグラムを返します。

public:
 cli::array <System::Byte> ^ Receive(System::Net::IPEndPoint ^ % remoteEP);
public byte[] Receive (ref System.Net.IPEndPoint? remoteEP);
public byte[] Receive (ref System.Net.IPEndPoint remoteEP);
member this.Receive : IPEndPoint -> byte[]
Public Function Receive (ByRef remoteEP As IPEndPoint) As Byte()

パラメーター

remoteEP
IPEndPoint

データの送信元のリモート ホストを表す IPEndPoint

戻り値

Byte[]

データグラム データを格納する Byte 型の配列

例外

基になる Socket は閉じられています。

ソケットへのアクセス中にエラーが発生しました。

Receiveメソッドの例を次に示します。 メソッドは Receive 、メッセージを受信するまで実行をブロックします。 にReceive渡された をIPEndPoint使用して、応答側ホストの ID が明らかになります。

//Creates a UdpClient for reading incoming data.
UdpClient^ receivingUdpClient = gcnew UdpClient( 11000 );

//Creates an IPEndPoint to record the IP Address and port number of the sender. 
// The IPEndPoint will allow you to read datagrams sent from any source.
IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 );
try
{
   // Blocks until a message returns on this socket from a remote host.
   array<Byte>^receiveBytes = receivingUdpClient->Receive(  RemoteIpEndPoint );

   String^ returnData = Encoding::ASCII->GetString( receiveBytes );

   Console::WriteLine( "This is the message you received {0}", returnData );
   Console::WriteLine( "This message was sent from {0} on their port number {1}",
      RemoteIpEndPoint->Address, RemoteIpEndPoint->Port );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e->ToString() );
}
 //Creates a UdpClient for reading incoming data.
 UdpClient receivingUdpClient = new UdpClient(11000);

 //Creates an IPEndPoint to record the IP Address and port number of the sender.
// The IPEndPoint will allow you to read datagrams sent from any source.
 IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
 try{

     // Blocks until a message returns on this socket from a remote host.
     Byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);

     string returnData = Encoding.ASCII.GetString(receiveBytes);

     Console.WriteLine("This is the message you received " +
                               returnData.ToString());
     Console.WriteLine("This message was sent from " +
                                 RemoteIpEndPoint.Address.ToString() +
                                 " on their port number " +
                                 RemoteIpEndPoint.Port.ToString());
 }
 catch ( Exception e ){
     Console.WriteLine(e.ToString());
 }
   'Creates a UdpClient for reading incoming data.
   Dim receivingUdpClient As New UdpClient(11000)
   
   'Creates an IPEndPoint to record the IP address and port number of the sender. 
   ' The IPEndPoint will allow you to read datagrams sent from any source.
   Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)
   Try
      
      ' Blocks until a message returns on this socket from a remote host.
      Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(RemoteIpEndPoint)
      
      Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
      
      Console.WriteLine(("This is the message you received " + returnData.ToString()))
      Console.WriteLine(("This message was sent from " + RemoteIpEndPoint.Address.ToString() + " on their port number " + RemoteIpEndPoint.Port.ToString()))
   Catch e As Exception
      Console.WriteLine(e.ToString())
   End Try
End Sub

注釈

メソッドは Receive 、リモート ホストからデータグラムが到着するまでブロックします。 データが使用可能な場合、 Receive メソッドは最初にエンキューされたデータグラムを読み取り、データ部分をバイト配列として返します。 このメソッドは、 パラメーターに送信者の remoteEPIPAddress および ポート番号を設定します。

メソッドで既定のリモート ホストを指定した Connect 場合、 Receive メソッドはそのホストからのデータグラムのみを受け入れます。 その他のすべてのデータグラムは破棄されます。

を受け取った場合は、 SocketExceptionを使用 SocketException.ErrorCode して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

注意

マルチキャスト データグラムを受信する場合は、 メソッドを呼び出す前に メソッドを呼び出ConnectReceiveさないでください。 UdpClientデータグラムの受信に使用する は、マルチキャスト ポート番号を使用して作成する必要があります。

適用対象

こちらもご覧ください