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

时间:2015-01-15 12:32:57

标签: c# sockets websocket client-server

我想知道一个人如何连接到服务器应用程序,如果你只知道它在同一个网络上运行?典型的套接字连接需要一个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;

        }

1 个答案:

答案 0 :(得分:1)

我会使用UDP广播。

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

客户端首先会为此UDP端口广播一个数据包,然后等待回复。

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

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