★请问大家关于线程的问题,以oicq为例,欢迎进来讨论!(●参与讨论的都有分●)★ 服务器和客户端之间通讯也用UDP吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 QQ服务器是单线程的???不会吧:O虚连接是什么意思? 我猜想:实际上你的机子上运行了一个socket服务程序(线程),它负责接收消息,这个线程启动时将自己的信息纪录下来,在另一个线程(负责发送消息)登录时送给icq服务器。在icq服务器端只是存储你机子上的服务器的信息(ip,port),通过连接你机子的socket服务器发送消息。icq服务器端的socket服务程序负责接收消息。线程处理:icq服务器端每一次接受一个消息时开一个新线程,接受完线程结束。icq客户端一共两个线程,一个负责接收消息,另一个发送消息。如果我做,就用这样的结构。 to:bdsc() 你有没有想过QQ要面对是上千万的用户,照你的方法那应该需要开多少个线程多少台服务器呢? hover(翔)(想弄几颗红星星玩玩) :请看清楚,再想想,嘿嘿 我也认为是用UDP虚电路来实施的。我猜想服务器只是作为一个在线数据库,例如当你的重新安装qq时,不用担心自己又要把好友重新添加一遍。很多服务都是靠客户端自己来实施的,例如用广播的形式来通知他的在线好友。这只是我的一点推测,希望有高手来道破天机! 那如果服务器对客户端和客户端对客户端通信都是用udp的话,服务器如何判定客户端是否掉线呢?难到要每格n秒就向所有在线的客户端发送“你在吗”??然后一堆客户端向服务器喊,“我在”,天啊,服务器能受得了吗? 用UDP,不一定要每个用户都建立线程啊,完全可以一个线程负责啊,客户端每次发消息时把自己的IP地址等信息发上去,服务器收到就转发到目的地 同一个Socket是不能在多个线间共享的,还有必要为它建立两个线程吗?to:sintenc(dbb) 对,这就是UDP 我觉得可能一般情况下qq在第一次登录到服务器签到后应该就和服务器没有联系了用户之间的会话用udp 不需要服务器跟踪在正常退出qq时 再到服务器那里注销自己 虚电路也是面向连接的,QQ应该是基于UDP的吧。至于数据向上传递时我觉得时有一个数据结构用以存放用户的信息,在向用户传送时数据先放在缓冲区重,经过区分后传入相应的结构 to: onlynight(歧异) 你有没有想过如果客户端断电或网络断开呢?照你的说法QQ客户如果自不注销自已那么就会一直在线罗?? 还有一个问题,就是QQ服务器的接收线程,在用户巨多的时候,同时给QQ服务器发消息,他的倒底是怎么处理的? 是不是可以这样:再用户登录的时候,本地QQ和服务器的连接是用的TCP,然后服务器就会的到你的ip和port。当有好友登录时,就会向服务器索要相关的信息,然后QQ和QQ之间就用UDP通信。如果当通信双方有一方退出时,就会到服务器注销,这时服务器就会通知他的好友他已经下线,然后服务器便会代收他的所有信息,并在他下一次登录的时候将所有代收的信息都转发给他。我是这么想的,就是有一点不知道如何解释:如果我在和好友聊天的时候突然掉线了,那我重新登录之前的信息又是如何收到的呢?然到是服务器在不停的查询我是否在线吗?不会吧... 救急,VS2010编译生成不了动态库 初级问题,十六进制数转成4byte 精确的判断字符串是否是utf-8 一个遍历窗口控件的问题? 撤销wuxuan的大版主职位 介绍几个好的网络编程的网站 如何得到光标的屏幕坐标? zhou_chao请UP 我成功的实现了使MessageBox()出现时置于所有窗口最顶端的方法,需要代码的请举手! 请问ring0 ring3 是甚麽意思,与VxD 有甚麽关系?(详见内) 在哪儿可以download windows 的latest Platform SDK header/library 滚动的面板和工具条
实际上你的机子上运行了一个socket服务程序(线程),它负责接收消息,这个线程启动时将自己的信息纪录下来,在另一个线程(负责发送消息)登录时送给icq服务器。在icq服务器端只是存储你机子上的服务器的信息(ip,port),通过连接你机子的socket服务器发送消息。icq服务器端的socket服务程序负责接收消息。线程处理:icq服务器端每一次接受一个消息时开一个新线程,接受完线程结束。icq客户端一共两个线程,一个负责接收消息,另一个发送消息。如果我做,就用这样的结构。
我猜想服务器只是作为一个在线数据库,例如当你的重新安装qq时,不用担心
自己又要把好友重新添加一遍。
很多服务都是靠客户端自己来实施的,例如用广播的形式来通知他的在线好友。
这只是我的一点推测,希望有高手来道破天机!
用户之间的会话用udp 不需要服务器跟踪
在正常退出qq时 再到服务器那里注销自己
再用户登录的时候,本地QQ和服务器的连接是用的TCP,然后服务器就会的到你的ip和port。
当有好友登录时,就会向服务器索要相关的信息,然后QQ和QQ之间就用UDP通信。
如果当通信双方有一方退出时,就会到服务器注销,这时服务器就会通知他的好友他已经下线,然后服务器便会代收他的所有信息,并在他下一次登录的时候将所有代收的信息都转发给他。
我是这么想的,就是有一点不知道如何解释:
如果我在和好友聊天的时候突然掉线了,那我重新登录之前的信息又是如何收到的呢?然到是服务器在不停的查询我是否在线吗?不会吧...