第一百八十四章 即时通信软件(4 / 4)

超脑黑客 疯狂小强 3869 字 15天前

后来他不得不去一些技术论坛进行询问,最终终于有一个人告诉他一个bbs讨论组的地址,林鸿登录到那个讨论组,最终找到了原作者的email地址,于是他向原作者雅尔口尝试着发了一封邮件,林鸿在邮件中明确地告诉他,自己想要编写一个基于irc协议上的软件,想要irc协议的细节。

原本还要等上一段时间,却没想到不到半个小时就收到了作者的回信。

雅尔口对于有人加入到irc协议软件开发的行为感到非常高兴,对于每一个人,他都会尽自己最大的努力去帮助别人,提供便利。

在邮件中,他给林鸿发来了详细的协议技术细节,而且还包括最新的升级版本,包括频道加密和更便利的文件共享功能。

原本,林鸿只想编写一个用于团队内部进行交流的沟通软件,这样,只需要有一个服务器端就行了,其他的都作为客户端和服务器端连接。

但是阅读了雅尔口的最新irc协议之后,他决定扩充一下之前所构想的软件功能,不局限于一个服务器端,而是多个,即在软件中同时集成服务器端和客户端。也就是说,每一个用户都可以将自己作为中继服务器,给大家提供服务。并且,服务器端之间也可以进行通联。

实际上,这种架构和业余无线电非常相似。在无线电通信中,有一种特殊电台称为“无线中继台”,能实现信号的中继和放大,从而延伸无线电网络的覆盖范围。

在无线电发明的早期,人们还没有发现短波信号的远距离传播特性,而中、长波无线电地波通信因为大地吸收损耗,距离有限。早期的业余无线电爱好者就通过人工中转的办法来扩大通信范围。原理和接力一样,通过火腿志愿者地热心帮助,火腿们可以仅仅通过长波就可以将无线电信号送至大洋彼岸,甚至地球的另外一端

林鸿决定修改架构,让每一个客户端都同时具备“中继台”功能,从而可以极大地增强整个即时通信系统的稳定性。因为如果仅仅只有一个服务器端的话,一旦这台服务器由于某种原因出现问题,那么其他人之间的通信就会根本无法进行。

而重新设计之后的架构则不会如此,如果其中一个节点损坏,消息还是可以通过另外一个节点传输到目的地。这其中信息传输的路径从理论上来讲有无数条,只要通过最短路径算法找出最短的那条即可。

至于编写这个软件的语言,林鸿最终选择了c语言,他在刚开始的时候就考虑到了跨平台的需要,目前他所接触到的高级语言中,只有c语言能够满足这个要求。

……

举报本章错误( 无需登录 )