我要为内部解决方案实施一些发现。
我们有两种软件:
目前,我们正在客户端手动设置IP。
我们希望实施发现。
我们有以下要求:
你有协议,图书馆,......建议吗?
我们尝试过UPnP,但似乎 c#中没有符合我们要求的优质服务器+客户端实现
答案 0 :(得分:4)
使用发现应用(客户端)中的UDP广播:
int broadcastPort = //something
byte[] msg = //something
//Cycle this for all IP adresses
IPAddress broadcastIp = //Broadcast address for this net
IPEndPoint destinationEndpoint = new IPEndPoint(broadcastIp, broadcastPort);
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
sock.SendTo(msg, broadcastEndpoint);
让发现的应用程序(服务器)回答,接收答案使用UdpClient.Receive()
,它会为您提供应答站的IP。