日期:2014-05-20  浏览次数:20703 次

Socket的问题
socket一般写的都是一边发送,另外一边接收,这样的对等的情况。
我如何能做到不确定的发送和接收?类似qq消息那样。

另外一个问题就是qq能做到你下线后在一定的时间范围内上线,便可以接收到这断时间别人给你留的信息。请给个思路谢谢!

最后给大家说个对不起,我只有30分可以发了。前面提问都发的100,没了。我是新手,忘大家给予我帮助。谢谢!

------解决方案--------------------
你client的socket连上另一边的serversocket,建个流就可以收发数据了
你client随便什么时候都可以发送数据给serversocket的,readline是阻塞式的,流里有东西才会读的

你可以把一定时间的内容在服务器上写文件,确定一个接受这得id,等这个人上来了以后,读文件发掉
------解决方案--------------------
1. 据说QQ在消息上用的是UDP
2. 离线消息一定是存在服务器上,当用户登录时,向服务器发消息,服务器会将相关离线消息返回。
3. 发消息和发文件一定是两条线程,一条是UDP监听,一条是TCP监听,因为文件必须保证完整性。
4. 流程大概是这样,用户A向B发消息,A首先向QQServer发送请求,QQServer获取到B的IP并返回给A,A就直接和B进行通信。
------解决方案--------------------
leaves616() :的想法不错,把要发的东西存入文件,等接受了再读文件发送。呵呵,下来试试具体实现。
------解决方案--------------------
QQ用的不是TCP而是UDP
UDP不是阻塞的,并且也不维护发送顺序的
------解决方案--------------------
mark!
------解决方案--------------------
udp是点对点进行数据交换的。而且一方必须是服务器。另一方是客户端。比如本机既可以是服务端也可以是客户端。并且双方都的开监听就好了。你可以去试试!!!
------解决方案--------------------
楼主是否想实现象QQ那样子可以指定发送给哪一个人的!
第一个Client的信息都是发送到Server上去处理的,服务器接收数据后转发给你所要发送的那个人,而这样转发就要知道对方的IP地址,所以你要告诉服务器说转发给那个人,也就是说你发送的信息要包括那个人的IP地址,而这个IP地址就得从服务器发送给你,可以用这个类List来存放你各个在线的用户。
也就是说你一上线就自动从服务器得到所有的用户的的信息及IP。
希望这个对你有所帮助。
------解决方案--------------------
QQ是UDP???

我觉得不太是.UDP的消息发送是没有保证的...
QQ不会是单独的UDP