Я использую Raspberry Pi в качестве сервера в нашей сети с IP: 172.20.X.X / 16
Планируется отправка широковещательного сообщения на порт 15555
. Сервер получит сообщение и отправит мне свой eth0-IP .
Поскольку я не лучший в сети, у меня проблемы с созданием сценария, который отправляет IP-адрес вещателю, и особенно, если этот сценарий выполняется, когда Сервер получает что-либо через порт 15555
Я прочитал кое-что о команде "nc", но я не понимаю, решит ли это мою проблему:
https://stackoverflow.com/a/4739260/11397900
Так что на данный момент у меня есть 2 сценария:
Сценарий 1 содержит
#!/bin/bash
while :
do
nc -k -l 15555 > sendIP.sh
sleep 1
done
Скрипт 2 называется sendIP и содержит атм
#!/bin/bash
echo "Success"
И последнее, но не менее важное: мой C # -код для отправки трансляции:
private static string getServerIP(int port)
{
string IPString = String.Empty;
IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("172.20.255.255"), port);
byte[] messageInbytes = Encoding.ASCII.GetBytes("Hallo");
UdpClient udpClient = new UdpClient();
udpClient.Send(messageInbytes, messageInbytes.Length, iPEndPoint);
udpClient.Client.ReceiveTimeout = 1000;
while (true)
{
try
{
var recvBuffer = udpClient.Receive(ref iPEndPoint);
break;
}
catch
{
}
}
return iPEndPoint.Address.ToString();
}
Ожидается, что на Raspberry в консоли будет стоять «Success», и c # -программа завершится, но на самом деле Программа не получит ответ