当服务器无响应时,如何让某个客户端自升为服务器?

bestbear 2005-08-11 03:07:08
同样一个程序,既可以作服务端,又可以做客户端。在局域网的多台机子上有安装,
运行时,首先有一个默认的机子上的该程序作为服务器,其他机子上的该程序作为客户端。

现在的问题是,如果默认的服务器出现异常,比如通信中断,这是需要其他本来做客户机的程序中,自动有一个升级为服务器。

想了很久,不知道怎么样设计才算好?大伙给个建议,谢了。
...全文
114 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
teli_eurydice 2005-08-15
BT 就这样做的吧
回复
younggle 2005-08-15
以上的思路都很好啊。
轮循法、最优法都可以啊。
回复
bestbear 2005-08-15
还有没得不同思路的啊
回复
softrain 2005-08-12
首先由发现服务器(确实)掉线的机器广播(同一个消息发送到各个客户端,下同)一个请求服务器的消息,如果自己适合做服务器,可以同时广播一个申请服务器的消息。
然后各个客户端收到这个请求服务器的消息,判断自己是否适合做服务器,如果适合,则也广播一个申请服务器的消息。
申请了做服务器的机器收到其他的申请做服务器的消息,根据消息中携带的数据比较优劣。在某个时间段内发现没有比自己更优的消息,则广播一个自己取得了服务器资格的消息,以后这个机器就是服务器了。
回复
windcsn 2005-08-12
这个列表在个CLIENT连接到服务器的时候建立,并分发给各个CLIENT。这样可以避免有可能造成灾难的广播消息。
回复
windcsn 2005-08-12
设立一个备份服务器列表,列表中将能作为服务器的IP按顺序列出来,当机器发现首选服务器不工作时,就请求另一个COPY的。具体算法还是比较复杂的。
回复
bestbear 2005-08-11
more
回复
myy 2005-08-11
Windows的域中就有类似的机制,好象是采用“选举”机制。
回复
dirdirdir3 2005-08-11
数据同步要处理好
回复
Tranquillo 2005-08-11
登录时,默认服务器为每台机器编一个号,默认服务器可编为0,并且将编号的结果发送给每个客户
当服务器异常时,所有机器将会检测到与0号机器通信中断,这时1号机器自动运行服务器,其他机器尝试与1号连接,如果一定时间内1号不能连通,再试2号
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-08-11 03:07
社区公告
暂无公告