// Use this for initialization public void Start() { Debug.Log("Initializing Brodcasting"); if (started) { Debug.Log("Brodcasting already started once, ignored."); return; } localIpList = new List <string>(); getLocalIpAddresses(); udpSrvinfoClient = new UdpClient(); // EnableBroadcast=true MUST be added for Android to allow sending broadcast messages udpSrvinfoClient.EnableBroadcast = true; udpSrvinfoClient.Client.Bind(new IPEndPoint(IPAddress.Any, srvInfoPort)); started = true; var from = new IPEndPoint(0, 0); sendSrvInfoRequest(); Task.Run(() => { Debug.Log("Initializing Brodcasting listening thread started "); while (true) { var recvBuffer = udpSrvinfoClient.Receive(ref from); string receivedMsg = Encoding.UTF8.GetString(recvBuffer); Debug.Log("Broadcast msg received :" + receivedMsg); MqttSrvInfoMsg mqttSrvInfo = MqttSrvInfoMsg.parseJson(receivedMsg); mqttPoseProxy.setMqttSrvAddress(mqttSrvInfo.payload.ip, mqttSrvInfo.payload.port); } }); }
static public MqttSrvInfoMsg parseJson(string json) { MqttSrvInfoMsg obj = JsonUtility.FromJson <MqttSrvInfoMsg>(json); return(obj); }