第474章 点对点网络(1/1)

好书推荐:

王李铺镇中学别的科目是男女老师都有,唯独数学,清一色都是男老师,数学教研室被戏称为罗汉堂。 年龄最大,资格最老的樊老头就是罗汉堂首座,曾凡刚出现在门口,一个年轻的数学老师就看见他了,冲里面喊道:“樊老师,你们班曾凡找你!” 因为报名参加中学生计算机编程大赛,曾凡这个过去默默无闻的学生,突然成了学校里的名人,学生们认识他的还不多,老师们可是很多都认识他了,尤其是数学老师,经常来办公室,多少都有个印象。 “曾凡,刚考完试你不好好在家休息,又来上机呀?”樊老头来到数学教研室门口,将机房钥匙交给他,笑呵呵的问。 “在家里也没有别的事儿,我正好有了新的想法,改进一下程序!” “编程我教不了你,但是呢,你别太投入了,隔一个小时你得休息一会,让眼睛放松一下,别总盯着显示器,不然的话,很快你就要戴上眼镜了!”樊老头拍拍他肩膀叮嘱道。 “嗯,我知道了,樊老师,那我去机房了!” 打开电脑第一件事就是登录邮箱,没想到竟然收到了几十封邮件,第一封是华兵软件园审核通过,软件上线邮件,后面大多都是下载使用后软件自动提交的数据。 没想到上线不到一天,就有了这么多数据,超过他的预期。 还有一封是一个使用者提交的修改建议邮件,希望能增加联网对战的功能,还给他提了好几种思路。 对这个提建议的用户邮件,曾凡逐一认真回复,然后戴上耳机,打开音乐播放器,开始写联网对战功能的代码,增加点对点连线功能。 程序界面先要增加功能按钮,还要增加新的功能界面,要能显示搜索到的可以对战的目标,还要有一些提示信息,网络的状态不稳定,延时卡顿掉线是常见现象,这些意外情况都要考虑进去,将一项项的需求写出来,曾凡才发现,比他想象的要麻烦多了。 这些功能尽管繁琐,费些时间也能实现,最困难的还是网络连接问题。 点对点网络,顾名思义就是网络上不确定位置的两台计算机,不依赖固定位置的服务器,在茫茫无际的互联网上搜寻到对方,并且建立连接。 这种技术的理论提出时间不长,书上也只是介绍了理论原理,简单的应用设想,未来发展前景,并没有具体应用案例,更别提源代码了。 电子信号虽然可以接近光的速度在网络上传播,那也需要明确的目标和方向,不然也只是无头苍蝇一样乱撞。 两个不知道彼此名字,彼此地址的陌生人,如何在一个上千万人口的大城市迅速找到对方,建立起互相信任的联系,需要一个高效便捷的方法。 写着功能界面代码的同时,曾凡也在思索着网络搜索的方法,这些基础性的能力他仿佛呼吸一样自然,庖丁解牛一样纯熟,可是涉及到这种需要原创型算法的时候,他的大脑又变得非常空,完全要靠自己去想。 武侠小说中,丐帮,天地会,明教之类的严密组织,都有自己独特的标记暗语,任何一个成员到达一个陌生的地方,没有固定的分舵,也能迅速找到自己的同伴,这个场景和现在的需求很相似。 在一些标志性场所不太醒目的地方,留下标记暗语,认识这些标记的同伴看到这些就能迅速联系上了。 场景相似,但是也有很大的差异,帮派成员都有自己的名字职位,相貌也各不相同,可是程序都是同一个模子复制出来的,在远隔可能千里万里的互联网上,如何识别彼此,互相区分开来,又是一个大麻烦。 并且现在的互联网是动态ip地址分配,哪怕在同一个地址同一台电脑,两次连接的ip地址都会不一样,程序怎么样识别出还是上一次连接的对象呢,每个程序必须要有独立的不能伪造的标记! 对于程序来说,想要独一无二不能伪造,又涉及到了随机数生成和加密,必须能生成不可破解不会重复的随机数。 前面几个版本的象棋程序都是不需要安装的绿色程序,只需要复制到dows系统下就能运行,不需要修改注册表调用系统库文件。 联网版本如果仍然这样,那就必须保证每一个复制出的程序都能自动产生随机数作为唯一识别码。 光是复制还不行,应该是每一次程序存储位置变化,都要产生唯一识别码。 如果有一个固定服务器,只需要用户注册一个账号就能解决的识别问题,因为点对点网络的不确定性,被曾凡设计的越来越复杂。 网络中任何一个节点都可能随时掉线,存储的数据都不可靠,因此这个网络必须能抵抗这种风险,哪怕所有节点全灭,只要再有两个节点上线,仍然能快速建立起互相信任的连接,这才是他想要的网络。 曾凡现在没能力租服务器,也不可能让学校的机房电脑二十四小时开机,那也太费电了,他只能通过编程算法来解决网络的存续问题。 点对点网络正好符合他的要求,只是这个实现的过程没有任何参照,完全靠他自己想办法解决一个个难题。 实现这部分功能的程序源代码还没有用户界面的源代码多,设计算法却让曾凡绞尽了脑汁,在机房里待了两天一夜,直到周日下午才算完成。 肚子饿的实在难受,曾凡才跑到校门口对面吃了一碗削面,然后回学校继续。 天色将黑,判卷的老师们大多数都已经下班回家了,学校里除了门房老魏就只有几个住校的老师。 教学楼南面除了自行车棚,还有两组单杠,两组水泥面乒乓球台,曾凡想起中考还有引体向上,就跳上单杠测试了一下。 他体重刚过一百斤,胳膊比同学力气都大,以往轻松做二十个,好久没有做了,没想到还有所进步,一气做到了二十五个才感觉到吃力。 回到机房,曾凡打开了几台电脑,将网络版象棋程序在不同电脑间测试了一下,同一个局域网当然很快就能互相连接,还要测试在互联网的效果才行。 想到测试对象,曾凡给刘建国和吴世伟两位教授,还有那个提建议的用户发去邮件,附上了测试程序,请他们可以的话,帮忙一起测试一下联网对战效果。 没想到那个用户很快就发来了回复邮件,表示可以测试,已经上线了。 曾凡切换到象棋程序,打开联网对战,搜索联网用户,不到一分钟时间就显示出一个令狐冲1527的用户。 鼠标左键点击用户名选择发送对战邀请,对方迅速回应,进入对战界面,同样的棋盘,只是棋盘右侧多了一个信息输入显示的界面,双方可以进行文字交流。