(10) 如何获取 linux 系统上的 TCP 、 UDP 套接字的收发缓存的默认大小,以及代码范例

embedded/2025/2/5 17:17:58/

(1) 先介绍下后面的代码里要用到的基础函数:

在这里插入图片描述

++ 以及:

在这里插入图片描述

++

在这里插入图片描述

(2) 接着给出现代版的 读写 socket 参数的系统函数 :

在这里插入图片描述

++ 以及:

在这里插入图片描述

(3) 给出 一言的 范例代码,获取当代 linux 系统的 tcp 套接字的缓存大小:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>int main() 
{int sockfd , sndbuf, rcvbuf ;        socklen_t optlen;sockfd = socket(AF_INET, SOCK_STREAM, 0);  // 创建一个 TCP 套接字if (sockfd < 0) {   perror("socket");    exit(EXIT_FAILURE);  }// 获取发送缓存大小optlen = sizeof(sndbuf);if (getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (void *)&sndbuf, &optlen) < 0) {perror("getsockopt SO_SNDBUF");close(sockfd);       exit(EXIT_FAILURE);}printf("Send buffer size: %d bytes\n", sndbuf);// 获取接收缓存大小optlen = sizeof(rcvbuf);if (getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (void *)&rcvbuf, &optlen) < 0) {perror("getsockopt SO_RCVBUF");close(sockfd);        exit(EXIT_FAILURE);}printf("Receive buffer size: %d bytes\n", rcvbuf);close(sockfd);  // 关闭套接字return 0;
}

++ 给出 ubantu 的打印结果( 跟 30 年前的 伯克利系统里的缓存设置,已经有了很大的差别)

在这里插入图片描述

++ 以下是 30 年前的 tcp/ip 协议的系统缓存设置:

在这里插入图片描述

(4)

谢谢


http://www.ppmy.cn/embedded/159803.html

相关文章

HarmonyOS NEXT:保存应用数据

用户首选项使用 用户首选项的特点 数据体积小、访问频率高、有加载速度要求的数据如用户偏好设置、用户字体大小、应用的配置参数。 用户搜选项&#xff08;Preferences&#xff09;提供了轻量级配置数据的持久化能力&#xff0c;支持订阅数据变化的通知能力。不支持分布式同…

全面掌握市场信息:xtquant库在证券品种数据获取中的应用

全面掌握市场信息&#xff1a;xtquant库在证券品种数据获取中的应用 开篇点题&#xff1a;技术背景和应用场景 在量化交易领域&#xff0c;快速准确地获取市场基础信息是至关重要的。xtquant库提供了一种便捷的途径来获取各类证券品种的数据&#xff0c;包括股票、指数、基金等…

【LeetCode 刷题】贪心算法(1)-基础

此博客为《代码随想录》二叉树章节的学习笔记&#xff0c;主要内容为贪心算法基础的相关题目解析。 文章目录 455.分发饼干1005.K次取反后最大化的数组和860.柠檬水找零 455.分发饼干 题目链接 class Solution:def findContentChildren(self, g: List[int], s: List[int]) -…

第九篇:NoSQL 数据库与大数据

第九篇&#xff1a;NoSQL 数据库与大数据 目标读者&#xff1a; 本篇文章适合那些希望学习 NoSQL&#xff08;非关系型数据库&#xff09;和大数据处理技术的学习者。如果你对传统的关系型数据库&#xff08;如 MySQL、PostgreSQL&#xff09;有一定了解&#xff0c;并希望扩…

5分钟掌握React的Redux Toolkit + Redux

Redux Toolkit Redux 教程 1. 引言 本教程介绍如何使用 Redux Toolkit&#xff08;RTK&#xff09; 和 TypeScript 搭建 Redux 状态管理系统。 我们将创建一个 计数器&#xff08;Counter&#xff09; 和 待办事项&#xff08;Todo&#xff09; 模块&#xff0c;并学习 Redu…

Java项目: 基于SpringBoot+mybatis+maven+mysql实现的疫苗发布和接种预约管理系统(含源码+数据库+开题报告+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql疫苗发布和接种预约管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、…

第四章:玄丹-React商品管理实战

https://ant-design.antgroup.com/components/table-cn 在这里找到我们的 Table 表格,来完成我们的商品功能实战,下面我们会学到 表格类组件的渲染表格函数组件的渲染图片上传组件弹窗组件按钮组件axios 工具的封装分页功能的实现商品管理基础表格 import React from react;…

一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI

一、GenBI AI 代理介绍&#xff08;文末提供下载&#xff09; github地址&#xff1a;https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI&#xff0c;我们的使命是通过生成式商业智能 &#xff08;GenBI&#xff09; 使组织能够无缝访问数据&…