
c++
文章平均质量分 69
CChener
这个作者很懒,什么都没留下…
展开
-
对 c\c++ char类型的理解
字符字面值一般是用一对单引号来表示。char类型一般就是用字符字面值来初始化、赋值。由于char类型的是单字节长度,当给char类型的变量用字符字面值赋值时,当单引号里面的内容超过一个字节时,系统会自动截取一个字节的内容给char变量,忽略其他的字节内容。比如char a='1234';c++会认为单引号里的每一个数值都看做一个字符字面值,也就是说1 2 3 4各占一个字节,'1234转载 2017-08-25 10:13:41 · 685 阅读 · 0 评论 -
Socket TCP协议 实时通信的粘包处理 Java与C++实现
原理:(经典)tcp粘包分析目的:TCP连接面向流,读取网络的一包数据不一定正好是协议里定义的完整的一包,有可能是多包,有可能是半包,也有可能是一包半,现在要将每次读取的数据进行分包,也就是粘包处理,提取出完整的一包数据供上层使用,上层需要将完整的一包数据里的数据根据协议定义的格式提取出来。实现:将收到的数据copy到缓存区,在缓存区里循环从起始位按照协议找出完整的一包数据提取出来。 关键点在于根原创 2017-08-12 09:46:45 · 2541 阅读 · 6 评论 -
A-simple-IOCP-Server-Client-Class完成端口
本文介绍一个可以在客户端和服务器代码中使用的类。该类使用以后解释的IOCP(输入输出完成端口)和异步(非阻塞)函数调用。源代码基于许多其他源代码和文章:[1,2和3]。使用这个简单的源代码,您可以:●服务或连接到多个客户端和服务器。 ●异步发送或接收文件。 ●创建和管理逻辑工作线程池以处理较重的客户机/服务器请求或计算。很难找到一个全面但简单的源代码来处理客户端/服务器通信。在网络上找到的源代码太复杂(20+以上),或者没有提供足够的效率。该源代码设计为尽可能简单和文档化。在本文中,我们将简要介绍Wi翻译 2017-08-20 16:41:18 · 991 阅读 · 0 评论 -
ATL字符串转换宏
有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?头文件d:/program files/microsoft visual studio 8/vc/atlmfc/include/atlconv.h如果要使用ATL字符串转换宏,请先定义USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多转载 2017-12-28 12:23:43 · 384 阅读 · 0 评论 -
在已损坏了程序内部状态的 xxx.exe 中发生了缓冲区溢出。按“中断”以调试程序,或按“继续”以终止程序
bug描述:在协议解析过程中,客户端命令里某一项value值超过了申请的处理字符串buffer的长度,拷贝的时没问题,但在读取的时候编译器是以'\0'结尾标识一个CString,在读取时会从内存起始位向后寻找'\0',此时内存溢出。在已损坏了程序内部状态的XXX.exe 中发生了缓冲区溢出"的一种可能原因 点击打开链接在release模式下调用了 debug 部分的dll出现这个问题. 点击打开...原创 2018-04-23 16:37:13 · 5298 阅读 · 0 评论 -
c++ 数据解析常用的知识点与方法
###char数组(字符串)转int 这个过程是将每个字节二进制代表的数按照ascll码对应的数组合起来,比如:char c[2] ;ZeroMemory(c,5);c[0]= 49;c[1]= 49;int i = atol(c);i输出是11,因为每个字节存储的是49,对应的字符是1,所以是11###char数组整体看做一个二进制块转成一个intint i =0;char [4];int i...原创 2018-04-28 10:55:29 · 1292 阅读 · 0 评论