我正在使用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,其中包含atm
#!/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上,控制台中将出现“成功”字样,并且c#-程序完成了,但实际上,该程序不会得到响应