1. check buffer size

getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);

setsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);

setsockopt(s,SOL_SOCKET,SO_RCVBUF, (char *)&rcv_size, optlen);

//RE:https://blog.csdn.net/fuyuehua22/article/details/38232769
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <assert.h> int main(int argc,char **argv)
{
int err = -; /* 返回值 */
int s = -; /* socket描述符 */
int snd_size = ; /* 发送缓冲区大小 */
int rcv_size = ; /* 接收缓冲区大小 */
socklen_t optlen; /* 选项值长度 */ /*建立一个TCP套接字 */
s = socket(PF_INET,SOCK_STREAM,);
if( s == -){
printf("建立套接字错误\n");
return -;
} /* 先读取缓冲区设置的情况,获得原始发送缓冲区大小*/
optlen = sizeof(snd_size);
err = getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
if(err<){
printf("获取发送缓冲区大小错误\n");
}
/*打印原始缓冲区设置情况*/ /*获得原始接收缓冲区大小*/
optlen = sizeof(rcv_size);
err = getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen);
if(err<){
printf("获取接收缓冲区大小错误\n");
} printf(" 发送缓冲区原始大小为: %d 字节\n",snd_size);
printf(" 接收缓冲区原始大小为: %d 字节\n",rcv_size); /*设置发送缓冲区大小*/
snd_size = *; /* 发送缓冲区大小为8K */
optlen = sizeof(snd_size);
err = setsockopt(s, SOL_SOCKET, SO_SNDBUF, &snd_size, optlen);
if(err<){
printf("设置发送缓冲区大小错误\n");
} /*设置接收缓冲区大小*/
rcv_size = *; /* 接收缓冲区大小为8K */
optlen = sizeof(rcv_size);
err = setsockopt(s,SOL_SOCKET,SO_RCVBUF, (char *)&rcv_size, optlen);
if(err<){
printf("设置接收缓冲区大小错误\n");
} /*检查上述缓冲区设置的情况,获得修改后发送缓冲区大小 */
optlen = sizeof(snd_size);
err = getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
if(err<){
printf("获取发送缓冲区大小错误\n");
} /*获得修改后接收缓冲区大小 */
optlen = sizeof(rcv_size);
err = getsockopt(s, SOL_SOCKET, SO_RCVBUF,(char *)&rcv_size, &optlen);
if(err<){
printf("获取接收缓冲区大小错误\n");
} /* 打印结果 */
printf(" 发送缓冲区大小为: %d 字节\n",snd_size);
printf(" 接收缓冲区大小为: %d 字节\n",rcv_size); close(s);
return ;
}

2. 查看统计:

cat /proc/net/can/stats

eg:

nvidia@tegra-ubuntu:~/zrj/laneseg_TRT$ cat /proc/net/can/stats 

    transmitted frames (TXF)
received frames (RXF)
matched frames (RXMF) % total match ratio (RXMR)
frames/s total tx rate (TXR)
frames/s total rx rate (RXR) % current match ratio (CRXMR)
frames/s current tx rate (CTXR)
frames/s current rx rate (CRXR) % max match ratio (MRXMR)
frames/s max tx rate (MTXR)
frames/s max rx rate (MRXR) current receive list entries (CRCV)
maximum receive list entries (MRCV)

3. ifconfig can1

nvidia@tegra-ubuntu:~/zrj/laneseg_TRT$ ifconfig can1
can1 Link encap:UNSPEC HWaddr ---------------
UP RUNNING NOARP MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (589.8 KB) TX bytes: (2.0 MB)
Interrupt:

4. other tools.

CANoe or CANPro etc...

END

how to check CAN frame的更多相关文章

  1. ORA 各种oraclesql错误

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...

  2. SQL错误码

    ///////////////////////////////////////////////////////////////ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会 ...

  3. Python入门之树莓派

    Linux命令行$+命令 pwd显示当前目录 ls列表 cd改变当前目录,/ sudo超级用户输入,特权来操作系统相关设置或删除文件 sudo apt-get  install  安装程序 sudo ...

  4. 蓝牙的L2CAP协议

    1.概述     L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operat ...

  5. [转]PictureEx.h和PictureEx.cpp源文件

    要显示一个gif,网上找了个,子类化了MFCl图片控件,用着方便,记一下 转自:http://www.bccn.net/Article/net/vcnet/jszl/200709/6386.html ...

  6. WebDriver(Selenium2) 常见异常及处理方法

    http://uniquepig.iteye.com/blog/1568197 Exception NoSuchElementException Solutions    1. Check the l ...

  7. 原创:vsphere概念深入系列四:Nic Teaming若干问题

    参考文档:http://www.hyper-v.nu/archives/marcve/2013/01/lbfo-hyper-v-switch-qos-and-actual-performance-pa ...

  8. Unity3D关于VR的Demo(一)

    https://blog.csdn.net/qq_15807167/article/details/52048998?locationNum=8&fps=1 阅读数:9716 最近有点忙,只有 ...

  9. Oracle 11g trace events

    oracle的events,是我们在做自己的软件系统时可以借鉴的 Oracle 11g trace eventsORA-10001: control file crash event1ORA-1000 ...

随机推荐

  1. django QueryDict对象

    类的原型:class QueryDict[source] 在HttpRequest对象中,GET和POST属性都是一个django.http.QueryDict的实例.也就是说你可以按本文下面提供的方 ...

  2. 浏览器滚动条及其影响 calc()

    1.浏览器滚动条 默认风格各异,推荐一插件  mCustomScrollbar 不考虑兼容也可自定义样式    链接二 2.影响 以垂直方向为例,当内容变化的时候,如果设置的是overflow:aut ...

  3. Codeforces 285C - Building Permutation

    285C - Building Permutation 思路:贪心.因为每个数都不同且不超过n,而且长度也为n,所有排列只能为1 2 3 ......n.所以排好序后与对应元素的差值的绝对值加起来就是 ...

  4. CSS实现和选择器

    CSS实现和选择器 本课内容: 一.实现CSS四种方式 1,每个html标签中都有一个style样式属性,该属性的值就是css代码.(针对一个标签)2,使用style标签的方式. 一般都定义在head ...

  5. 雷林鹏分享:Ruby 块

    Ruby 块 您已经知道 Ruby 如何定义方法以及您如何调用方法.类似地,Ruby 有一个块的概念. 块由大量的代码组成. 您需要给块取个名称. 块中的代码总是包含在大括号 {} 内. 块总是从与其 ...

  6. 20161210xlVBA一行数据转为四行

    Sub NextSeven_CodeFrame() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAlerts = Fal ...

  7. 1月21日 Reference Data Type 数据类型,算法基础说明,二分搜索算法。(课程内容)

    Reference Datat Types 引用参考数据类型 -> 组合数据类型 Array, Hash和程序员自定义的复合资料类型 组合数据的修改: 组合数据类型的变量,不是直接存值,而是存一 ...

  8. oracle11g在没DNS情况下failover的配置方法

    1.Oracle 11g引入scan ip ,可在没有DNS的情况下,客户端连接RAC配置failover时,很多情况还是使用oracle10g方式.即在客户端tnsname.ora中配置failov ...

  9. js中JSON.stringify用于自定义的类

    参考:http://stackoverflow.com/questions/7356694/how-to-json-stringify-a-user-defined-class-in-javascri ...

  10. .net图表工具汇总

    概述:图形图表的可视化数据表现形式已成为一种趋势,本文推荐了10款非常好用的.NET图表控件,希望对广大.NET图表开发者能有所帮助. 读图时代,图形图表的可视化数据表现形式已成为一种趋势.因为图表能 ...