C# 如何使用C窗口发现侦听端口XX的服务器套接字的IP地址
我正在制作C服务器和套接字图像发送应用程序。我现在面临的主要问题是,每次加载客户端时,我都必须指定服务器的名称或IP地址 我能知道客户机套接字如何获取在某个端口XX侦听的服务器的IP地址吗?我不想在客户端手动修复或键入IP地址以连接到服务器套接字。对不起,我的英语很差 我的设想是C# 如何使用C窗口发现侦听端口XX的服务器套接字的IP地址,c#,sockets,C#,Sockets,我正在制作C服务器和套接字图像发送应用程序。我现在面临的主要问题是,每次加载客户端时,我都必须指定服务器的名称或IP地址 我能知道客户机套接字如何获取在某个端口XX侦听的服务器的IP地址吗?我不想在客户端手动修复或键入IP地址以连接到服务器套接字。对不起,我的英语很差 我的设想是 我有3款平板电脑,分别是A、B、C安装的客户端应用程序和3款平板电脑,分别是D、E、F安装的服务器应用程序。每个客户端都可以向每个服务器发送映像。所以,问题是我不想在客户端套接字中修复服务器的IP地址。使用Udp套接字
我有3款平板电脑,分别是A、B、C安装的客户端应用程序和3款平板电脑,分别是D、E、F安装的服务器应用程序。每个客户端都可以向每个服务器发送映像。所以,问题是我不想在客户端套接字中修复服务器的IP地址。使用Udp套接字广播,可以发送所有在端口侦听的IP地址的数据。这是我发送给所有在端口4800侦听的服务器的客户端代码
foreach (IPAddress ip in allLocalNetworkAddresses.AddressList)
{
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//Allow sending broadcast messages
client.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.Broadcast, 1);
//Bind on port 0. The OS will give some port between 1025 and 5000.
// client.Bind(new IPEndPoint(ip, 0));
//Create endpoint, broadcast.
IPEndPoint AllEndPoint = new IPEndPoint(IPAddress.Broadcast, Port);
byte[] sendData = Encoding.ASCII.GetBytes("1");
client.SendTo(sendData, AllEndPoint);
Console.Write("Client send '1' to " + AllEndPoint.ToString() +
Environment.NewLine);
你必须扫描这个网络。如果你同时编写客户机和服务器,你可以考虑在服务器上做一个IM的广播消息来接听客户机。@ Buffder-+广播消息。谢谢