小弟最近正在写一个跟QQ差不多的程序.实现互动聊天,用的是D6的ServerSocket&ClientSocket控件.
TCP方式的.俺开始准备采用UDP的.但太复杂了.有服务端.
现在有几个问题难倒小弟了,请大虾们指点迷津:1. 连接该用线程来处理吗?使用该工具的人大概有近1000人吧.收发信息包括登录都采用线程方式来处理吗?? 如果采用线程方式,怎么实现呢?
2. 在线列表俺是保存在数据库里的,据IP判断用户.但如果客户端非正常断开.服务端就不会处理其下线(断开)操作.即该ID还在在线列表中.
3. ServerSocket等控件的异常怎么捕获不到呀!~!比如服务端未打开.报100061等错误.但我已经try 了但是不按我的方式来处理.
TCP方式的.俺开始准备采用UDP的.但太复杂了.有服务端.
现在有几个问题难倒小弟了,请大虾们指点迷津:1. 连接该用线程来处理吗?使用该工具的人大概有近1000人吧.收发信息包括登录都采用线程方式来处理吗?? 如果采用线程方式,怎么实现呢?
2. 在线列表俺是保存在数据库里的,据IP判断用户.但如果客户端非正常断开.服务端就不会处理其下线(断开)操作.即该ID还在在线列表中.
3. ServerSocket等控件的异常怎么捕获不到呀!~!比如服务端未打开.报100061等错误.但我已经try 了但是不按我的方式来处理.
2.服务端间隔轮询,没有响应的就kill掉。
3.应该可以捕获的吧。可能没写对哟。
然后把要相互通信的客户端C1和C2的最新的IP和端口号相互交换一下,C1和C2就可以直接通信了,应该就是这样子的……。
如果C1或C2有一个没有上线,那么就直接和服务器通信,并把信息积存在服务器里。