C/C++
李_柱
这个作者很懒,什么都没留下…
展开
-
linux C select函数学习
Select函数是在Socket编程中使用的比较重要的函数,是非阻塞的函数(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高)。例如使用connect accept recv等函数是阻塞时函数(所原创 2016-05-27 21:54:01 · 447 阅读 · 0 评论 -
linux 多线程学习
在C++中如果在类里面调用线程。以及在线程中使用类中的其他成员函数那么可以使用下面的方法class CanProto{//头文件简写。。。。。。pubilc:static void * Receive_Pthread(void *p);}函数调用void * CanProto::Receive_Pthread(void *p){ CanFrame frame; un原创 2016-05-27 22:02:49 · 346 阅读 · 0 评论 -
Socket can 远程帧
远程帧远程帧由6个场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。远程帧不存在数据场。远程帧的RTR位必须是隐位。DLC的数据值是独立的,它可以是0~8中的任何数值,为对应数据帧的数据长度。pp头文件#ifndef __CANPROTO_DEF_H#define __CANPROTO_DEF_H#include "printdef.h"#原创 2016-05-28 12:40:46 · 3245 阅读 · 0 评论 -
epoll服务器代码实现
/*这个程序可以完整的在linux上进行测试运行,主要功能有,将用户输入的数据存储到用户缓冲区中,然后每次从用户缓冲区中读取数据并打印,对于epoll的介绍这里就不做介绍了,推荐阅读https://segmentfault.com/a/1190000003063859 这篇文章比较详细介绍了select,epoll,poll的作用*/#include #include #include #i原创 2016-10-20 17:31:25 · 902 阅读 · 0 评论 -
针对协议命令字处理函数
我们在处理命令字协议的时候例如以下协议,aa tt 05 06 09 bb 其中aa tt是协议头,05是命令字 ,06是数据长度,09是数据内容,bb是协议尾。针对这种协议。我们一般在处理命令字的时候大多数使用的都是switch case进行命令字的处理。但是如果再处理非常多的命令字的时候我们就不得不建立更多的case语句进行处理。下面的程序是使用的类似于注册命令字的形式,当一条原创 2016-10-22 11:10:26 · 515 阅读 · 0 评论 -
结构体定义使用小总结
结构体定义的时候可以对位进行第一,每几位表示什么意思,初始化时并且可以单独的对某些位进行赋值具体方法如下//.h文件typedef struct tagMMBOXPKT { unsigned char RemoteWorkState:3; //遥控模式 unsigned char JumpGear:2; //跳档 unsign原创 2017-01-10 14:56:28 · 522 阅读 · 0 评论