2011-04-13 193 views
0

我有两个应用程序一个是客户端等为断绝,怎么客户端应用程序自动检测服务器应用程序,如果服务器应用程序正在运行如何将多个客户端连接到服务器

请告诉我最好的方法,该

+0

这是一个编程问题,或者你已经有了服务器/客户端应用程序? – SWeko 2011-04-13 10:17:20

+0

你是什么意思,请扩展你的想法 – V4Vendetta 2011-04-13 10:17:49

+0

为什么不让客户端尝试连接到服务器? – Blorgbeard 2011-04-13 10:20:34

回答

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

好!客户如何听这个请求 – 2011-04-13 10:32:26

+0

由于您的问题已关闭,请谷歌广播,并有一些例子 – BugFinder 2011-04-13 10:49:02

相关问题