摘要: 接上回说, 在基本上完成通讯组件后我就开始对整个平台应用模式的规划了. 因为这个时候我已经完成平台中端对端的聊天信息互传, 就是聊天软件的功能了. 对于整个平台来说架子算是搭建起来了. 剩下的就是用各种应用外插式的丰富平台功能. 不过在这之前我还需要做一件很重要的事, 就是将平台的地基打稳当, 否则后续应用插进来会出现各种各样的问题, 我会无暇顾及的. 其实在我学习软件开发的早期, 对代码质量, 产品质量这些是没有一个客观的印象的. 不关心所谓的产品质量, 也不知道如何提高产品质量. 而随着我对软件开发控制的了解和学习后, 这种基本的概念就慢慢的通过一次次因为产品质量出现的现场问题而逐渐让我. 阅读全文
posted @ 2013-02-28 10:44 天佐 阅读(118) 评论(0) 推荐(0)
摘要: 如果那时转念一想, VB效率不行, 我还是用C++开发, 说不定我现在就是个游戏开发工程师了. 感觉还是蛮爽的, 不过可能也不尽然是我最想要的结果吧. 所以一个人最自在的莫过于清楚的知道自己要的是什么. 其实在生活中也是这样, 不断的体验和改变生活周围的变化, 完善自己, 适应和微调环境, 以让自己心灵和身体有一个舒服的港湾, 这是无可厚非的, 但是很多人其实因为各种各样的原因, 过着自己不是很满意却还凑活的生活, 有自己的想法, 有自己的观点, 却不会主动的表达出来并尝试改善, 因为他们知道言多必失, 祸从口出, 这样反而让自己失去了很多本该有的机会. 我这样说并不是因为我觉得自己没有去开. 阅读全文
posted @ 2013-02-27 14:44 天佐 阅读(151) 评论(0) 推荐(0)
摘要: 上篇说到内网穿透, 其实这个也是蛮大的一个话题(坑爹啊 楼主什么话题都说蛮大...), 后续我会描述内网穿透在实际应用中遇到的问题, 和我是如何解决的. 不过现在我还是散出去, 聊聊我所认识的软件应用. 其实软件在开发中的时候, 是相当理想化的, 基本都是实验室环境, 理想化的构架, 理想化的数值, 理想化的部署, 甚至应用环境都会刻意去营造成理想化的. 这样的产品是经不起外界市场风吹日晒, 也受不了雨露滋润的. 而正是这种温室的效果才会使得我们的软件产品异常的脆弱和对残酷市场环境的不适宜. 所以真正强大的产品是经得起市场考验的产品, 也是千锤百炼不断跟进时代的. 人们在信息化的社会中越来越. 阅读全文
posted @ 2013-02-27 11:35 天佐 阅读(159) 评论(0) 推荐(0)
摘要: 在讲P2P的应用和实际问题前, 我先说说我为什么会研究与实现P2P模式. 原因其实蛮简单的, 我希望搭建一个网络平台出来, 这点第3篇文章的时候已经提及到了, 我希望的是用一种网络通讯手段将灵活多变的多种网络应用集合在一个平台内, 而通过这个平台可以给用户提供尽可能完善的网络服务. 而涉及到的端对端通讯也是需要实现的功能点, 当然端对端也不是可以在任何网络情况下都可以实现的(这个我们后面再说). 但是作为一种简便廉价的网络通讯手段还是有很多好处的. 其实P2P说简单点就是利用穿透路由器门禁加上外网服务器的协助完成不同域之间内部终端的直接通讯. 相信很多通讯应用都需要这样的状态, 比如互传文件. 阅读全文
posted @ 2013-02-26 21:22 天佐 阅读(194) 评论(0) 推荐(0)
摘要: 关于UDP数据丢包的问题, 其实第4章已经提及, 就是重发数据和确认数据包达到. 但是当实际应用中才会发现, 很多原理很简单的东西, 实现起来会遇到各种各样的疑难杂症, 不过话说回来也是欠考虑分析的原因. 什么问题呢, 那就是数据包重复接收的问题... 我们来具体分析下吧, 接收端为什么会重复接收数据呢? 首先说下数据包发送和接收的过程, 发送端将数据发送过去后, 接收端收到数据, 进行确认包的回复. 这样发送端在收到接收端回发的确认包后就可认定, 本次数据包的发送成功到达接收端. 如果超时没有收到的话就会进行数据重发, 这就是主动重发模式, 当然还有一种是索取模式. 那么现在问题就来了, . 阅读全文
posted @ 2013-02-26 19:27 天佐 阅读(193) 评论(0) 推荐(0)
摘要: 上篇文章说到解决UDP通讯丢包和乱序所采取的滑动窗口协议,而我则更进一步将其改良成了并行滑动窗口协议, 精髓也无非在于解决发送等待的空耗问题, 具体细节可能后续还会因为涉及到整个平台的稳定性而提及. 这里就不啰嗦了. 大家知道散打评书吧, 其特点就是说主题的时候会散出去说些相关的话题, 然后再散回来. 有点像游戏里做主线任务的时候顺道去做做支线任务, 然后还是会回来继续做主线任务. 并且主线任务才是大头. 我现在也发挥下这个功能吧, 从UDP通讯这块散出去吧, 虽然上回说数据库的时候已经想散了... 其实细心的看客应该已经发现了, 我提及的技术细节并没有深入进行剖析, 为什么呢? 原因很简单. 阅读全文
posted @ 2013-02-26 09:44 天佐 阅读(179) 评论(0) 推荐(0)
摘要: 接上回说~ 可靠UDP通讯, 其实目前已经有很多已实现的现成方式, UDT, RUDP, RDP等, 有兴趣的同学可以去百度下. 不过我还是老习惯, 自主创新, 重头做起. 可靠UDP通讯需要解决的问题: 1. 数据丢包. 2. 数据包乱序. 3. 流量控制. 4. 数据收发性能. 第一, 二个问题我想到的解决办法是数据重发与数据组包. 现成的方式就是滑动窗口协议, 想到就做, 后续的三,四个问题我们下个帖子再讨论. 通过查找资料, 分析算法, 画流程图, 最终简单的实现了协议, 通过测试还是发现效果一般, 而且当网络状态相当差的时候, 比如网络阻塞, 流量限制等这种情况下, 滑动窗口出现因. 阅读全文
posted @ 2013-02-25 22:27 天佐 阅读(184) 评论(0) 推荐(0)
摘要: 第一个帖子忘了说很重要的一点: 这些开发都不是工作内容, 而是我处于个人爱好而独立完成的作品.数据库的基本功能开发完成后, 我才逐步的发现一些问题. 比如长期使用后会如同Fat32一样, 产生碎片空间的浪费. 这样表现出来就是数据库文件大小比实际存储的有效数据大小总和要大一些, 因为数据空间重复使用的分配过程中不断产生碎片空间, 而这些碎片空间又太分散而无法满足当次使用需求. 后来又增加了一个清理碎片空间的功能, 只要定期整理或者数据库文件发布清理一下就好了.后期又发现数据库文件独占也是个问题, 特别是对于多端同时联入服务器的情况, 很多个任务可能同时操作独占资源. 这样某些任务可能会错过有. 阅读全文
posted @ 2013-02-25 21:21 天佐 阅读(161) 评论(0) 推荐(0)
摘要: 好了, 还是继续上个帖子的内容吧~自创的数据库我采用的抽屉式的存储模式, 有点像磁盘的Fat32那种管理.灵活性: 我首先考虑的是存储的内容, 就是说应用的时候很明显会存储各种类型的数据, 她可能仅仅是个整型数, 也可能是个字符串, 也可能是个文件, 还有可能本身就是个结构,数组,类什么的...如此多的类型就要求存储结构的灵活性. 相当于抽屉里可以装任何形状和大小的东西.固定性:灵活为什么又要说固定性呢? 比如数据查找, 定位, 移动等都需要有固定的模式来实现, 这就相当于抽屉的框架是固定的, 比如都有标签, 都写着里面装那种类型的物品.延伸性: 不能像现实中的抽屉那样, 木匠一开始就设计.. 阅读全文
posted @ 2013-02-25 21:03 天佐 阅读(159) 评论(0) 推荐(0)
摘要: 很高兴你点进这个帖子, 如果你是因为编程二字进来的, 那我会告诉你, 基本上会让你满意的. 如果你是因为生涯二字进来的, 那我会告诉你, 基本也会让你满意的. 这个帖子我打算连载, 用来描述我的爱好, 也是我的生活... 也许对你来说这是个很无聊的帖子, 也许有些人会从这里感悟到什么, 也许我就是在这里记录一下吧. 一直想在CSDN上发表点贴子, 可是忙啊 今天终于有机会了, 在加上心血来潮[某些人不要邪恶哦], 就开始了吧~ 为什么这个帖子会用"文艺"类呢? 告诉你吧, 我只是个普通青年, 有时候又有点2B, 所以得伪装下, 就发文艺贴了.... 其实你一直看下去就会知道 阅读全文
posted @ 2013-02-25 10:53 天佐 阅读(150) 评论(0) 推荐(0)