Я пытаюсь прослушать хост, который отправляет по UDP, используя MultiCastGroup.В Unity клиент запускается, но сообщение никогда не принимается, но если я беру точно такой же код и помещаю его в консольное приложение, оно работает, и я вижу сообщения хоста.
Вот что у меня получилось:
public class UDPListener : MonoBehaviour
{
IPEndPoint ip;
private int port = 20000;
private IPAddress group_address = IPAddress.Parse("233.255.255.255");
private UdpClient client;
string data;
private void Start()
{
StartClient();
}
void StartClient()
{
Debug.Log("Starting Client");
ip = new IPEndPoint(IPAddress.Any, port);
client = new UdpClient(ip);
client.JoinMulticastGroup(group_address);
client.BeginReceive(new AsyncCallback(ReceiveServerInfo), null);
}
void ReceiveServerInfo(IAsyncResult result)
{
byte[] receivedBytes = client.EndReceive(result, ref ip);
data = Encoding.ASCII.GetString(receivedBytes);
if (String.IsNullOrEmpty(data))
{
Debug.Log("No data received");
}
else
{
Debug.Log(data);
}
client.BeginReceive(new AsyncCallback(ReceiveServerInfo), null);
}
}
У меня также был тот же результат при использовании client.Receive (работает в консольном приложении, но не в Unity), поэтому мне интересно,может быть, мне не хватает какой-то настройки Unity?