如何将多个客户端连接到服务器

时间:2011-04-13 10:16:14

标签: c#

我有两个应用程序,一个是Client,另一个是服务器,如果服务器应用程序正在运行,客户端应用程序如何自动检测服务器应用程序

请告诉我这方面的最佳方法

2 个答案:

答案 0 :(得分:1)

如果您知道服务器的IP,那么尝试连接,如果它只是在本地网络上“运行某处”就可以发送广播

一个例子:(不是我的代码,借来的)

  public static void Main()
  {
   Advertise server = new Advertise();
  }
  public Advertise()
  {
   Thread advert = new Thread(new ThreadStart(sendPackets));
   advert.IsBackground = true;
   advert.Start();
   Console.Write("Press Enter to stop");
   string data = Console.ReadLine();
  }
  void sendPackets()
  {
   Socket sock = new Socket(AddressFamily.InterNetwork,
           SocketType.Dgram, ProtocolType.Udp);
   sock.SetSocketOption(SocketOptionLevel.Socket,
              SocketOptionName.Broadcast, 1);
   IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9050);
   string hostname = Dns.GetHostName();
   byte[] data = Encoding.ASCII.GetBytes(hostname);
   while (true)
   {
     sock.SendTo(data, iep);
     Thread.Sleep(60000);
   }
  }

然后客户端侦听广播,如果它收到一个或多个响应,它可以为用户提供你想要连接的内容。

这当然只适用于本地网络(没有防火墙/子网)

否则,您必须询问用户服务器的位置

答案 1 :(得分:0)

您的应用程序尝试连接到服务器 服务器回复。
服务器正在运行。

您的应用程序尝试连接到服务器 服务器没有回复 服务器未运行或存在其他问题。