嵌入式 setsockopt设置socket—attr达到send立即发送不延时MTU

本文主要是介绍嵌入式 setsockopt设置socket—attr达到send立即发送不延时MTU,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人例子:

 

void start_jrm(void)
{
 FILE *fp;
 char buf[4096];
 unsigned int myport;
 int on = 1;
 int sockfd,new_fd,len;
 SOCK_ATTR sock_attr;
 struct sockaddr_in my_addr, their_addr;
       char certificate[128] = "cacert.pem";
       char privatekey[128] = "privkey.pem"; 

 fp = fopen(config_file, "r");
 while(fgets(buf, sizeof(buf), fp)){

  if(strstr(buf,"listen_port")){
   myport = atoi(buf+sizeof("listen_port"));
  }
 }
   fclose(fp);
 eric_print("bind port %d\n",myport);

 //start_config_warden();
 if ((sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) { 
  perror("socket");
  exit(1);
 } else
 eric_print("socket created\n");

 bzero(&my_addr, sizeof(my_addr));
 my_addr.sin_family = PF_INET;
 my_addr.sin_port = htons(myport);//big or small endian problems

 my_addr.sin_addr.s_addr = 0;//why????
 setsockopt (sockfd, SOL_SOCKET,SO_REUSEADDR,TCP_NODELAY, (void *) &on, sizeof (on)); //Solve the port takes up
 if (bind(sockfd, (struct sockaddr *) &my_addr, sizeof(struct sockaddr)) == -1) {
  perror("bind");
  exit(1);
 } else
 eric_print("binded\n");

 if (listen(sockfd, 5) == -1) {
  perror("listen");
  exit(1);
 } else{
  eric_print("begin listen port %d\n",myport);
 }
 sock_attr.ctx =init_ssl(0);
 sec_load_cert_file(sock_attr.ctx,certificate,privatekey);//install certificate in server
 
 while(1){
         len = sizeof(struct sockaddr);
   //in the listening state
         if ((new_fd = accept(sockfd, (struct sockaddr *) &their_addr,&len)) == -1) {
             perror("accept");
             eric_print("accept error! \n");
         } else{
             eric_print("tcp server: got connection from %s, port %d, socket %d\n",
                    inet_ntoa(their_addr.sin_addr),
                    ntohs(their_addr.sin_port), new_fd);
         }
  sock_attr.sockfd = new_fd;
  handle_connection(sock_attr);//to oprate the new sock every time, then continue listening ???
  
 }

 

}

 
 
setsockopt
编辑
setsockopt()函数用于任意类型、任意状态套接口的设置选项值。尽管在不同协议层上存在选项,但本函数仅定义了最高的“套接口”层次上的选项。

目录

这篇关于嵌入式 setsockopt设置socket—attr达到send立即发送不延时MTU的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572880

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

Tomcat性能参数设置

转自:http://blog.csdn.net/chinadeng/article/details/6591542 Tomcat性能参数设置 2010 - 12 - 27 Tomcat性能参数设置 博客分类: Java Linux Tomcat 网络应用 多线程 Socket 默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定J

深入探索嵌入式 Linux

摘要:本文深入探究嵌入式 Linux。首先回顾其发展历程,从早期尝试到克服诸多困难逐渐成熟。接着阐述其体系结构,涵盖硬件、内核、文件系统和应用层。开发环境方面包括交叉编译工具链、调试工具和集成开发环境。在应用领域,广泛应用于消费电子、工业控制、汽车电子和智能家居等领域。关键技术有内核裁剪与优化、设备驱动程序开发、实时性增强和电源管理等。最后展望其未来发展趋势,如与物联网融合、人工智能应用、安全性与

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途