网络传输存在的一个问题是,当消息发送速度非常快(比如1s发送200个数据包)时,缓冲区可能会填满而导致发送队列后面的数据发送失败 因此试图通过建立可变缓冲区 当数据发送速度非常快时,马上扩充缓冲区容量,使其适应数据的发送数率 通过动态数组来实现一个动态循环队列的数据缓冲区 std::vector<DataItem> *_dataQueue; 调试中发现一个问题,就是从缓冲区取出的数据次序与送入次数不一致性 原因: 首先往缓冲区依次填入数据 数据包所在位置依次为: 前面的表示缓冲区的位置(为方便,从1开始计数),括号里表示发送包的编号 1(1) 2(2) 3(3) 4(4) 5( ...
引用Baker, Cooper, Fletcher, Miller, 和Smith住在一动5层公寓的不同楼层。Baker不在顶楼住。Cooper不在底楼住。Fletcher既不在顶楼也不在底楼。Miller住的楼层比Cooper住的高。Smith和Fletcher的楼层不相邻。Fletcher和Cooper的楼层不相邻。问每个人住的楼层。 把B,C,F,M,S代表表示这五个人分别所住的楼层 也就是说B,C,F,M,S只会取1-5的数值 然后把条件重新排列一下 1. Baker不在顶楼:B可能1,2,3,4 2. Cooper不在底楼:C可能2,3,4,5 3. Fletcher既不在顶楼也不在 ...
引用逻辑题:请编程实现,时间一小时。 某天!一家珠宝公司被盗!警方怀疑是甲,乙,丙,丁四个人中的一个,因此对四人进行问话。 甲说:我不是强盗! ,乙说:丁是强盗,丙说:乙是强盗,丁说:我不是强盗 这四个人中只有一人说的是真话。请问谁是强盗!? 我想的是 设置四个bool变量,分别为A,B,C,D 为true表示其为强盗,为false表示不是强盗 其中只有一个为true,三个为假 将四个人的话语分别转换成逻辑语句: 甲说:我不是强盗! 表达式x A == false 乙说:丁是强盗 表达式y D == true 丙说:乙是强盗 表达式z B == true 丁说:我不是 ...
引言 不管这篇文章是不是我写的. 但我看了以后感到很震撼,产生了共鸣.因此摘录如下. -- Bill Joy MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。 Bill Joy Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的 ...
基于 XmlRpc++ 而改进 主要扩展了(修改)了以下功能: 双端监听:服务器能监听客户端请求,客户端监听服务器请求 命令执行由同步改为异步,消息发送后没有确认机制 消息发送方:建立发送缓冲区 消息发送方:支持多线程的消息发送 // 目前消息的发送与解析相对较稳定,但还存在一些不完善的地方,如下: 1.不支持命令的确认机制;   也就是说,当命令发送至缓冲区时,并不能确保消息成功发送至目的地   比如说,消息已成功发送至缓冲区,尚未发出,但此时网络断开或者对应应用程序关闭,则消息无法成功发送    暂时还无进一步处理     后面考虑的可能策略是:a.加入每条消息的确认 ...
位域   有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:   struct 位域结构名   { 位域列表 };   其中位域列表的形式为: 类型说明符 位域名:位 ...
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对 ...
1.UDP checksum UDP optional TCP mandatory UDP checksum covers the UDP pseudo header, UDP header and the UDP data 与ip不同, ip只计算首部校验和 purpose: let UDP double-check that the data has arrived at the correct destination. 检测到checksum error: silently discarded, no error message is generated. 只有发送端和接收端才计算校验和 ...
这几天一直在浏览了tcp ip illustated vol1(后简称illustrated)和internetworking with tcpip vol1,发现曾经学习过的许多关键知识点已经忘的差不多了,有点点惊讶自己的遗忘速度。于是记录一些自己感兴趣的点。 希望能做到,温故而知新。 可能会比较关注这几个协议: TCP 这个是最重要的,也是最复杂的,很多思想非常精妙 IP 重要性仅次于TCP SNMP 兴趣点,当时学的时候觉得超级难,现在感觉好简单 ARP,RIP,OSPF 基础东西还是要看一下 UDP,FTP,icmp 浏览一下 随意的记录,看到哪就写哪,想到哪就写哪。而且,有的会 ...
写此文我很为难,一是担心读者误以为我轻浮得现在就开始写自传,二是担心朋友们误以为我得了绝症而早早留下遗作。 不论是落俗套还是不落俗套地评价,我在大学十年里都是出类拔萃的好学生。并且一直以来我对朋友们和一些低年级的学生们都有很大的正面影响。这十年是一个从幼稚到成熟的过程,交织着聪明与愚蠢、勤奋与懒散、狂热与怯懦、成功与失败。做对了的事可树立为榜样,做错了的事可挂作警钟。我写下经历与感受,期望以此引导和勉励无数比我年轻的学生们。我资历尚浅,既没有哲学家的深邃,也没有诗人的风华,不足以堂皇地育人,只能讲一些故事以表心愿。 我出生在1973年的春节,属牛,是“牛头”。父母为我起了很好听的名字叫“林 ...
kofsky
搜索本博客
最近加入圈子
存档
最新评论