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);
}