精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● Internet>>
相关软件
>>QQ相关>>[转载] ICQ的实现方法

主题:[转载] ICQ的实现方法
发信人: pig()
整理人: snowypeng(2002-05-23 09:20:43), 站内信件
【 以下文字转载自 cn_internet 讨论区 】
【 原文由
 [email protected] 所发表 】
发信人: budway (不倒翁◎心急如焚 ), 信区: Internet
标  题: ICQ的实现方法
发信站: BBS 曙光站 (Thu Jun 25 13:53:30 1998)

1.  ICQ客户端软件启动之后,自动联系ICQ服务器(可以有多个)。
ICQ服务器有固定的IP地址,这个地址被保存在ICQ客户端软件内部。

2.  两者联系上之后,ICQ客户端软件就把我的UIN号码、IP地址、朋
友列表等信息发送给ICQ服务器。服务器部分根据这些信息把要查看
的朋友是否在网上的信息反馈给ICQ客户端程序,于是,就可以看到
哪个朋友在网上,哪个朋友不在网上了。

3.  ICQ客户端软件运行的时候,会不断地与ICQ服务器联系,交换上
面所说的信息。如果由于某种原因,使得ICQ客户端发出的信号没有
被ICQ服务器收到(比如网络太繁忙,这些数据包被放弃等),一定
时间之后,ICQ服务器就认为我已经不在网上了,就会通知关注我是
否在网上的朋友,我已经离开了。假如这个消息刚刚发出,我的ICQ
客户端和ICQ服务器之间的沟通又恢复了,于是,朋友们就会看到我
刚刚OFFLINE,转眼又变成了ONLINE。有时候,由于网络问题,可能
会看到某人频繁ONLINE/OFFLINE,就是这个原因造成的。

4.   要个某个朋友发消息,如果这个朋友不在网上,消息就先发送
给ICQ服务器,一旦看到他上网了,就把消息给他。如果他在网上,
我的ICQ客户端就会试图直接把消息发送给他的ICQ客户端,而不经过
ICQ服务器。别忘了,只要看到他在网上,就知道他的IP地址,于
是,就可以建立直接连接。为了降低     ICQ服务器的负担,传送文
件就只能依赖二人之间的直接连接进行,而不能通过ICQ服务器中
转。

5.  关闭ICQ的时候,ICQ客户端软件会把我下去的消息发给ICQ服务
器,于是,ICQ服务器就可以通知我的朋友,我已经不在网上了。

ICQ的基本原理就是这样的,至于ICQ客户端软件和ICQ服务器之间交
换信息的具体内容和格式,可以用“Personal Socket”等WinSock监
视软件来剖析。

ICQ可以算是Internet上一个非常有创意的软件,但是,它的原理依
然非常简单,并且,我们很多人自信也能创造出这样的软件。但是,
为什么ICQ诞生在美国而不是我们这里呢?我认为,非常简单,因为
我们的社会没有对ICQ类软件强烈的需要(我指的是ICQ刚刚诞生的时
候)。

--
※ 来源:.香山红叶站 bbs.ritt.org.cn.[FROM: 202.112.108.115]

※ 转载:.广州网易 BBS bbs.nease.net.[FROM: 202.103.138.47]

[关闭][返回]