当前位置: 首页 > news >正文

网站添加站长统计代码焦作网站建设哪家好

网站添加站长统计代码,焦作网站建设哪家好,网站建设的专业知识,岳阳网页背景 网络调试助手是一个用来收发网络协议包的工具,它长这样子 该工具只能运行在Windows图形界面下,虽然也有linux版,但也是运行在图形界面的,对于这群用户来说,仍然不方便: 调试机没有图形界面调试机有图…

背景

网络调试助手是一个用来收发网络协议包的工具,它长这样子网络调试助手截图
该工具只能运行在Windows图形界面下,虽然也有linux版,但也是运行在图形界面的,对于这群用户来说,仍然不方便:

  1. 调试机没有图形界面
  2. 调试机有图形界面,但与目标板没有网络连接,或只有串口连接

针对上面两种情况,我打算开发一个命令行版的网络调试助手。

失败的尝试

一开始打算用netcat加命名管道printf命令实现,但是因为自己对命名管道不太熟悉,摸索一番没有搞定,后来看到国外这篇论坛帖子感觉靠谱,但目测使用体验跟GUI版的网络调试助手有差距,于是决定写代码实现。

实现思路

网络连接

使用geeksforgeeks这篇文章的client.c做网络连接模板,但ip和端口号弄成可配的:

    servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = inet_addr(argv[1]);servaddr.sin_port = htons(atoi(argv[2]));

协议数据转换

通过C语言的格式化输入函数sscanf实现字符版HEX数据二进制数据的转换

            for (i = 0; i < count; i ++) {if (buff[i] == ' ') {i++;} else {sscanf(&buff[i], "%02hhx", &bin[j]);i += 2;j++;}}

注意,这个%hhx就表示1字节的字符版HEX数据,前面加个02凑成%02hhx就能解析000A这种加前导零的数据了。

读取服务器响应

GUI版网络调试助手会实时返回服务端的响应,但是我的命令行版不想开后台线程接收(麻烦),于是取了个巧,让用户告诉助手什么时候去读响应,这时候一定能读到响应,不会让助手卡死在read系统调用里😉

因为这个消息是用户发给助手的,算user cmd,不是发给服务端的(算user req),因此要做区别处理,区别办法就是user cmd是以冒号开头的,参考vim

        if (buff[0] == ':') {// user cmdif (strncmp(&buff[1], "read", 4) == 0) {sscanf(&buff[1+4+1], "%u", &resp_len);printf("Reading Response for %u bytes...\n", resp_len);bzero(buff, sizeof(buff));count = read(sockfd, buff, resp_len);for (i = 0; i < count; i ++) {printf("%02hhx ", buff[i]);}printf("\n");} else if ((strncmp(&buff[1], "exit", 4)) == 0) {printf("Client Exit...\n");break;}} else {// parse user req data (执行上一段的代码)// send user req datawrite(sockfd, bin, j);j = 0; // clear user req data}

目前只实现了2个user cmd:

  1. read #bytes,读取指定字节数的服务端响应
  2. exit,退出助手界面

最终效果

console_net_assist
开2个tmux窗口,上面的串口启动netcat来假装服务端,下面的串口启动console_net_assist来当客户端,上图的交互时序为:

  1. 运行netcat -l 1234启动服务端
  2. 运行./console_net_assist 127.0.0.1 1234启动助手(即客户端)
  3. 用户在助手的> 提示符侧输入二进制协议数据aa 55 55 aa 00 00 00 01,然后按回车
  4. 助手会将这串HEX字符串转换成二进制数据发给服务端
  5. 服务端处理客户端的请求数据——输出到stdout(netcat默认行为)
  6. 用户在助手的> 提示符侧输入命令:read 4以读取约定的4字节应答
  7. 用户(假扮服务器)在服务端的stdin输入good表示4字节的响应
  8. 助手立即读取4字节响应并以HEX字符串的形式打印
  9. 用户在在助手的> 提示符侧输入命令:exit,退出

总结

这是个quick and dirty的小工具,谈不上代码质量,只为了解决问题,因此只有100行左右,需要的可以去我的gitee仓库下载

http://www.dtcms.com/a/492785.html

相关文章:

  • 广州展厅设计公司排名seo搜索优化
  • 做家装壁纸的网站黄山网站建设找哪家
  • 做app和网站哪个比较好湛江企业建站程序
  • 泰州网站制作套餐软文推广多少钱一篇
  • 长宁企业网站制作宝安中心区房价
  • 网站内页模板南高齿网站是谁做的
  • 怎么创建网站详细流程用ps网站首页怎么做
  • 免费代理服务器网站高端网站设计费用
  • 清新县城乡规划建设局网站阿里巴巴电脑版
  • 南昌高端网站开发费用表网站建设写
  • 专业的免费网站建设哪家网站别人能打开我打不开
  • 反馈机制只有“汇报”,如何建立双向反馈
  • SpringBoot房屋租赁系统
  • 网站做不做双解析宝塔wordpress ssl证书
  • 品牌网站建设推荐大蝌蚪做网站用php还是node
  • 常州网站建设工作室怎么被百度收录
  • 帝国cms网站地图xml怎样经营好一个网站
  • 做网站用的腾讯云服务器北京网站建设有哪些
  • 服务网站运营方案旅游网站建设属于什么以及学科
  • 东莞在线网站制作平台网站开发流程分析
  • 懂网络维护和网站建设的专业网页设计模板与效果图
  • 网站建设好的公司哪家好网站建设和维护要点
  • 江苏省电力建设一公司网站wordpress网站插件下载
  • 天津企业网站排名优化设计学习
  • 网站设计的发展趋势黄页网站推广方案
  • 门户网站的盈利模式怎样围绕网站专题发展来做ppt
  • 厦门企业网站制作能用于制作网页的软件
  • 网站建设公司下载wordpress博客美化
  • Adobe animate 2022 导出swf为exe
  • 做流量网站新产品推广方案策划