CM3 内核支持256 个中断,其中包含了16 个内核中断和240 个外部中断,并且具有256级的可编程中断设置。但STM32 并没有使用CM3 内核的全部东西,而是只用了它的一部分。STM32 有76 个中断,包括16 个内核中断和60 个可屏蔽中断,具有16 级可编程的中断优先级。而我们常用的就...
分类:
其他好文 时间:
2015-06-25 22:49:11
阅读次数:
202
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下:一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一...
分类:
其他好文 时间:
2015-06-23 22:57:29
阅读次数:
135
# 服务器的粘包处理 # **什么是粘包** 一个完成的消息可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题 **TCP粘包和拆包产生的原因** 1. 应用程序写...
分类:
其他好文 时间:
2015-06-03 08:31:03
阅读次数:
172
粘包问题的解决策略 由于底层的 TCP 无法理解上层业务数据,所以在底层是无法保证数据包不被拆分和重组的, 这个问题只能通过上层的应用协议栈设计来解决,根据业界主流的协议的解决方案, 可以归纳如下:消息定长, 例如每个报文的大小固定长度200字节,如果不够,空位补齐空格;在包尾部添加回车换行符进行....
分类:
其他好文 时间:
2015-05-29 19:56:42
阅读次数:
338
简介 TCP 是一个’流’协议,所谓流,就是没有界限的一串数据. 大家可以想想河里的流水,是连成一片的.期间并没有分界线, TCP 底层并不了解上层业务数据的具体含义 ,它会根据 TCP 缓冲区的实际情况进行包得划分,所以在业务上认为,一个完整的包可能会被 TCP 拆分成多个包进行发送 . 也有可能...
分类:
其他好文 时间:
2015-05-29 18:03:38
阅读次数:
88
先把处理的方法的代码放这里:解析数据帧的代码:bool CSocket::findData(byte* buff, int& len){ for (int i = 0; i 0) { memcpy(swapBuff, buff + i + 4 + dataLen + 4, len...
分类:
其他好文 时间:
2015-05-29 17:28:13
阅读次数:
114
http://www.vckbase.com/index.php/wv/10http://blog.csdn.net/zlzlei/article/details/7689409文章一:当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/I...
分类:
系统相关 时间:
2015-05-29 13:50:04
阅读次数:
211
程序员的20个常见瓶颈在扩展性的艺术一书中,Russell给出了20个有意思的估计:大约有20个经典瓶颈。Russell说,如果在他年轻时他就知道这些瓶颈该有多好!这些论断包括:* Database (数据库) 1. 数据规模超出了最大内存限制 2. 大查询和小查询 3. 写写冲突 4. 大表joi...
分类:
编程语言 时间:
2015-05-26 14:14:13
阅读次数:
148
DELPHI高性能大容量SOCKET并发(四):粘包、分包、解包粘包使用TCP长连接就会引入粘包的问题,粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。粘包可能由发送方造成,也可能由接收方造成。TCP为提高传输效率,发送方往往要收集到足够多的...
一直是用JAVA,关于SOCKET方面,JAVA有一个不错的框架MINA2,对于粘包、断包的处理有这个良好的处理,个人需要写的代码并不太多。
而C#、因为了解不多,也没去看第三方的SOCKET框架,所以只好根据MSDN提示,自己去实现了。
在代码之前,我们先说说处理中会碰到的情况如何:
1、先假设数据包的格式如下:
包长度(4字节)MD5签...