2012-11-26 8 views
6

マルチキャストUDPパケットの送信者のIPを取得するにはどうすればよいですか?現在のコードは、同期/ブロック方式で設定されます(下記の注を参照)。そのようなものが私のコードではありませんようこの質問はチャットから来て、:マルチキャストパケットから送信者IPを取得する

private void receive() 
    { 
     string mcastGroup = SetMcastGroup(); 
     s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
     s.EnableBroadcast = true; 
     IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 5000); 
     s.Bind(ipep); 
     IPAddress ip = IPAddress.Parse(mcastGroup); 
     s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip, IPAddress.Any)); 

     while (true) 
     { 
      try 
      { 
       byte[] b = new byte[4096]; 
       s.Receive(b); 
       string str = Encoding.ASCII.GetString(b, 0, b.Length); 
       //this.SetText(ipep.Address + ": " + str.Trim()); 
       this.SetText(senderIP() + ": " + str.Trim()); 
      } 
      catch{} 
     } 
    } 

注:ここでは、コードです。私は問題を理解しているので、私は尋ねるだけです。

+0

の代わりにこのコールreceiveFromを行うには、これまでの空の 'キャッチ{}'使用しないでください。単にエラーを隠し、問題を認識しにくくします。特定の例外を無視しようとしている場合は、その特定のタイプ(例えば、 'catch FileNotFoundExcetion {}')の –

+2

@JonathonReinhartに対して、私のコードではないと言うコメントを読まれましたか?* –

+4

。しかし、私はそれを「燃え上がらせる」とは言わず、「建設的な提案をする」と呼ぶだろう。 –

答えて

関連する問題