P2P项目总结(三):不断的抽象,不断的重构
来源:互联网 发布:mac 酷狗添加本地歌曲 编辑:程序博客网 时间:2024/05/17 22:22
项目开发也有一个多月的时间了,从刚开始立项到后来的设计修正,几周下来软件的框架也基本上稳定了,剩下的事情就是不断的填写代码,不断的优化程序,不断的测试,但这条路却走的并不顺利。
先说说客户端,由于采用的通信协议是UDP,现在我们想把TCP的通信方式也加进去,可以优先使用TCP协议,于是在UDP的基础上,增加了对于TCP协议的处理,这样就产生了很多的冗余代码,代码需要重构,重新的抽象封装后,形成了一个将TCP和UDP通信方式封装的对象,这个对象向外提供接口调用,直接负责网络通信的数据接收和发送。这样原先VOD、直播和转播调用的接口都需要重新改进,还好,这部分不是很难修改,毕竟现在的设计中客户端所需要完成的任务并不是很多,也不是很复杂。
数据服务器端的设计需要配合客户端,网络部分是相同的修改,同样需要修改VOD、直播和转播的发送端所调用的网络接口。除此之外,服务器端加入了对于直播频道和点播片源的管理,直播频道的管理因为频道的个数不会很多,所以在内存中进行了管理,点播片源很多,所以只是对于读取文件的操作做了一些封装,加了一些更适合调用的接口而已,总体而言,数据服务器端的修改也不是很大。
最后说说这个控制服务器,由于加入了TCP的通信方式,这样就需要控制服务器提供一个TCP的接入服务,而且TCP在P2P的通信时还需要控制服务器配合打洞,这样修改后,控制服务器的流程变的非常复杂,当一个客户端需要点节目的时候,不仅需要控制服务器进行相应的数据管理,还需要控制服务器配合进行打洞,除此之外,UDP的接入服务,也是需要的,TCP不通的时候,还需要切换到UDP协议,这样一来,除去控制服务器自身的数据管理,单单网络通信这部分就很复杂了。
总的看来,经过一些抽象和重构后,客户端、服务器都有一定的改进,但是无论是客户端也好,服务器也罢,从整个系统来看,流程非常的复杂,有句话说大道至简,所以复杂的东西一定不是最好的,越是复杂的东西,越应该表现的清晰简单,这才是设计的最终目的,如果把一个复杂的东西设计的更加复杂,只能是一个失败的产品,只有简单才是美,抽象、重构、封装,这些都是我们开发过程中每时每刻必须想到的,要不断的修改,不断的优化,才能有最好的产品,从这一点来看,我们的项目就注定还需要修改。
- P2P项目总结(三):不断的抽象,不断的重构
- I-代码需要不断的重构
- 半年总结--不断的变化
- 进入项目不断学到的(不断补充中。。。)
- canvas 不断重绘的部分原因
- 关闭不断重启的进程
- 不断学习,不断总结...
- 不断总结自己的异构程序开发思路
- 不断的学习,不断的思考
- 不断的开始 不断的放弃
- 接触WAP_WML的一些总结[不断补充]
- 总结——不断的提高
- c语言的奇葩书写,不断总结
- 北京的雪不断,viila热情不断
- 不断总结
- 不断升级的军备竞赛
- 不断折腾的IT
- 不断膨胀的欲望
- 一名平庸程序员的自白
- 安装MySQL时无法启动服务(could not start the service MYSQL .Error:0)
- Inconsistent accessibility Error
- event.keycode 大全
- C++ Primer个人学习笔记 第1章 快速入门
- P2P项目总结(三):不断的抽象,不断的重构
- directx(directDraw)与GDI
- Android 平台开发 ,建立AndRoid开发环境
- 撰写论文时word使用诀窍标题
- Spring 系列: Spring 框架简介
- 静静心情好不?
- POJO,PO,JAVABEAN
- XSLT中 的输出方法
- 开篇