0
내가 클라이언트에서 메시지를 수신 여기에 문제의 비트를 보내고있어

:UDP는 DatagramSocket 및 멀티 캐스트 IP

기본적으로 I'am는 청취자에게 "안녕하세요 세상을"메시지를 보낼 수 있지만, 리스너 "Reply"를 보내려고 할 때, 클라이언트는 메시지를받지 못합니까?

내가 여기에없는 것 같습니까?

클라이언트 :

 var socket = new DatagramSocket(); 
     socket.MessageReceived += HandleMessageReceive; 
     await socket.ConnectAsync(new Windows.Networking.HostName("224.192.12.12"), "9991"); 
     socket.JoinMulticastGroup(_multicastGroupIp); 

     DataWriter writer = new DataWriter(_socket.OutputStream); 
     writer.WriteString("Hello world"); 
     await writer.StoreAsync(); 

리스너 : 포트 :

  var stateObject = new StateObject(); 
      stateObject.LocalEndPoint = new IPEndPoint(IPAddress.Any, 9991); 
      stateObject.SocketClient = new UdpClient(); 

      stateObject.SocketClient.Client.Bind(stateObject.LocalEndPoint); 
      stateObject.SocketClient.JoinMulticastGroup(IPAddress.Parse("224.192.12.12")); 
      stateObject.SocketClient.BeginReceive(new AsyncCallback(HandleDiscoveryServiceReceive), stateObject); 

private static void HandleDiscoveryServiceReceive(IAsyncResult ar) 
     { 
      var stateObject = (StateObject)ar.AsyncState; 

      IPEndPoint localEndPoint = stateObject.LocalEndPoint; 

      byte[] data = stateObject.SocketClient.EndReceive(ar, ref localEndPoint); 
      string decodedData = Encoding.UTF8.GetString(data); 
      System.Console.WriteLine("Got something back: {0}", decodedData); 

      UdpClient client = stateObject.SocketClient; 
      client.MulticastLoopback = false; 
      byte[] msg = Encoding.UTF8.GetBytes("REPLY"); 
      IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse("224.192.12.12"), 9991); 
      client.Send(msg, msg.Length, remoteEndPoint); 

      client.BeginReceive(HandleDiscoveryServiceReceive, stateObject); 
     } 

답변

0

당신은 잘못된 주소에 대한 응답을 전송해야합니다. 당신은 열심히 배선했습니다 : 왜? 원격 주소 : 포트는 수신자가 사용할 수 있습니다. 그것을 사용하십시오.

관련 문제