与具有未知 IP 的服务器应用的 C# 套接字连接



我想知道如果您只知道服务器应用程序在同一网络上运行,它将如何连接到服务器应用程序?典型的套接字连接需要一个 IP 地址才能连接,但如果它未知怎么办?有没有其他方法可以在没有 IP 的情况下连接或以某种方式确定服务器应用程序的 IP?

我问这个是因为对我来说,必须将服务器 IP 硬编码到客户端应用程序中,或者让用户在运行时手动输入它似乎很不切实际?当您在由DHCP服务器自动分配IP的网络上时,除非您给该机器一个静态IP,否则您将永远无法确定服务器应用程序在哪个IP上运行,这是我想避免的。

我希望我的询问足够清楚。

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        try
        {
            socket.Connect(serverIP, serverPort); <- this line is what I want and alternate to
            client = new TGHClient(socket);
            client.Received += client_Received;
            client.Disconnected += client_Disconnected;
        }

我会使用 UDP 广播。

服务器必须侦听 UDP 端口,并回复此端口上的广播。

客户端将首先为此 UDP 端口广播数据包,然后等待应答。

回复将包含 IP 地址和客户端使用服务器所需的任何信息。

在此初始 UDP 通信之后,可以建立常规 TCP 连接。

最新更新