2017-01-20 7 views
0

私はサーバーアプリケーションを作成しています。どのアドレスメッセージがサーバーに来たのかを知る必要があります。 Socketクラスでは、メッセージがどこから来たのかを知るために、RemoteEndPointがあります。それはUDPClientクラスでメッセージがどこから来たのかを見つけるための解決策がありますか?私はウェブを検索しましたが、何かを見つけられませんでした。UDPClientでリモートエンドポイントを取得するにはどうすればよいですか?

答えて

2

あなたが任意のコードを投稿していないように、これは仕事を得る必要があること、簡単な例である:

UdpClient udp = new UdpClient(5050); 
private void Listen() 
{ 
    while (true) 
    { 
     IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); 
     byte[] recData = udp.Receive(ref anyIP); 
     string ip = anyIP.Address.ToString() //this is client IP address 
    } 
} 
+0

ありがとうございました!それは素晴らしい作品です!私はその質問では言いませんでしたが、あなたが言ったように、 'Address'を使う代わりに、' Port'を使うべきであるポートを取得したかったのです。再度、感謝します! – Ramon

+0

編集してポート番号も追加します。これはIPEndpointオブジェクトの一部です – Peter4499

+0

これは私の場合は機能しませんでした。私は受信NICのIPアドレスしか持っていません。私に何ができる? (コードはバックグラウンドワーカーで実行され、この例では既に取り除かれています;セットアップ:ホスト上のプログラムを受信するVM(IP:* .3、ホストネットワークアダプタ、ブロードキャスト(255.255.255.255) * .1)。 "anyIP.Adress" == * .1) –

関連する問題