救急~~关于UDP客户端查找用户信息 (100分)

  • 主题发起人 主题发起人 不困
  • 开始时间 开始时间

不困

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端查找分为两个选项:在线用户和所有用户,
搜索怎样实现?
使用数据库还是UDP服务器端?
如果使用数据库的话需要增加以下步骤:
1、用户登陆更新数据库状态为在线。
2、用户离开时更新数据库状态为离线。
3、用户断线超时由UDP服务器端来更新在线信息。
如果使用UDP服务器段发送在线用户信息的话,
一是数据量太大,而是无法获取离线用户信息。
小弟推敲半天拿不定主意,
无忌大哥,有劳了。
 
我觉得用数据库来做比较方便,都是被动式,就是有了动作才去数据库查找。同时在客户端之间
你也可以做些联系,这样就减少了客户机对数据库的访问了。

 
"使用数据库还是UDP服务器端?"
其实就是被动和主动的区别,使用数据库是被动的方式,当用户有了动作时才去数据库查询,
就像QQ的查用户信息一样
而UDP服务器端就是主动的方式,服务器发送信息到客户端.就像QQ发送广告一样。
具体怎么用,要看你具体做什么了.
如果你是做既是通讯的东东,在获取用户信息的时候应该采用前一种方式,即用户需要时从
数据库查询.后一种方式,主要用在当有用户上线、下线时,服务器向其他用户发送通知,
但不要发广告。

 
同意大家的观点,用数据库来保存用户资料,再就可以用TCP通讯的,连接发送完消息以后
断开连接
 
问张无忌:
既是通讯工具中,客户端登陆服务器,获取好友在线信息、IP地址和端口号后。客户端
和客户端就用UDP点对点通讯了。那么如何保持用户在线信息在服务器和客户端的同步呢?
是不是服务器定时向客户端发送查询消息,问是否在线,客户回应在线。如超时则掉线,
服务器就向其在线的好友发送通知,告知某人下线。
 
当客户端正常退出时,将客户离线信息发送到服务器端,这是必要的。
但是当客户端非正常退出(网络突然断开没来得及通知服务器端等)时,客户端得在线信息就是
错误的,所以,服务器端必须在必要时查询客户端是否在线。
以上是个人观点,欢迎指正。
 
呵呵呵,广告是不会滥发的。
再请问一下,我想做一个通讯软件和一个在线棋牌游戏,两者结合在一起
单纯用UDP就完全有可能实现吗?或有别的更好的方式请大家推荐。


 
这个阿,我设想和大家差不多,
服务器端的在线用户信息中设置一个CheckTime,初始为5。
客户端定时发送在线信息至服务器端,
更新CheckTime为5。
服务器端定时检测每个用户的CheckTime,检测一次CheckTime减一,
为0时则删除此用户信息。。
 
有个问题,搜索也不管用了
放在这里问一下吧:
客户端向服务端发送UDP数据包,在得到服务器端返回的确认信息之后结束此次通话。
担心发送一次丢包率太高,所以在一段时间之后没有得到服务端得返回信息,再次发送此包。
但如果因为网络堵塞或是别的原因,导致两个数据包先后都到达服务端,这种情况下,
服务器端该如何处理?
该如何实现?
 
多人接受答案了。
 
后退
顶部