各位高手,大家好!   现在我使用WinSock做一个系统,想达到一个这样的功能,不知能否实现?   (1)没有一个固定的服务器,当所有的Client启动后没有连接服务器
   (2)一旦启动一个程序,相当于一个服务器,该程序启动后,对所有在线的客户端进行连接,然后得到客户端的状态。    各位有什么思路?    谢谢!

解决方案 »

  1.   

    Client作为监听Socket,是可以的,由服务器来创建多个Socket与客户端连接;关键是服务器怎么知道所有客户端的IP地址呢?
      

  2.   

    在数据库中建立一个表,当有服务器在线时,将该服务器的IP保存到表中,设置标志为服务器,每一个客户端启动后,首先检测表中有没有服务器,如果没有,则把第一个启动的客户端的IP保存到表中,设置标志为服务器,其他的客户端都连接到该IP,这样布知道行否
      

  3.   

    有个向局域网广播的IP,你查找一下相应的局域网IP设置资料,找到这个IP就可以实现了!
    就相当于游戏中的功能对不?(比如魔兽3的局域网对战,不用设置IP就可以检测到网上的电脑。)
      

  4.   

    我有个想法,以前试过,行得通。
    每个Client端启动的时候,绑定到本地一个端口,使用UDP协议,监视收到的数据,然后你自己定义一种通信协议,比如请求服务器地址什么的,响应的时候可以用广播,地址如10.0.0.255。我以前是这么做的
    Client启动,发送广播数据报,请求服务器
    Server端收到数据,返回服务器地址端口等信息
    (如果没有服务器的话,你也可以就把当前的Client设为服务器)
    建立连接