发信人: 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]
|
|