网络套接字(主TCP)
socket返回值创建网络套接字创建成功返回值是文件描述符如果失败则是 -1。创建出来的文件是全双工的。什么是全双工呢通俗讲就是可以 边写边读将文件分为读缓冲区和写缓冲区因此你经常看到在操作创建出来的网络套接字时对同一个fd 进行读写操作。参数目前就我使用来说第一个参数int domain是地址族也就是你选择使用什么网络进行通信常见的AF_INET (IPV4)AF_INET (IPV6)第二个参数int type:是套接字类型大概分为两种第一种SOCK_STREAM TCP是一种可靠连接有序的字节流。后续还有bind listen accept 等操作第二种SOCK_DGRAM UDP是无连接不可靠报文式的数据。只用sendto/recvfrom第三个参数int protocol:一般填0。bind一般客户端不需要bind 因为服务器难以知道每个客户端的端口号而服务器的端口号是比较通用的并且在下载的安装包中常常有端口号服务器ip等信息因此一般只需要服务器去绑定给他发消息的客户端端口号ip地址就可以了。返回值成功返回0失败返回 -1。参数第一个参数int sockfd:第一个参数比较简单就是你socket出来的文件描述符。第二个参数const struct sockaddr*addr:第二个参数是这个函数最为复杂的注意看此处的 sockaddr 这个类型它是对sockaddr_in和sockaddr_on的封装如图片所示因此你在bind之前跟据自己的用途还需要先创建对应的结构体网络通信就是sockaddr_in ,通常是服务器进行bind到此就完成了一个基础的bind。第三个参数socklen_addrlen:这个参数就是你sockaddr 的大小比较简单。listen:服务器需要 listen 监听来自客户端的请求把socket创建的文件描述符fd 标记为被动监听套接字在内核创建半连接队列和全连接队列。返回值成功返回0失败返回-1。参数第一个参数int sockfd这个参数是你socket创建的文件描述符将这个文件描述符变为监听套接字。用于等待客户端接入。第二个参数backlog限制全连接队列的最大容量。半连接的队列由系统配置分配大小不受backlog控制。accept:从listen 对应的全连接队列去除一条连接为其创建文件描述符开始通信若全连接队列为空则阻塞等待。返回值:成功返回新创建的文件描述符fd 调用失败则返回-1。第一个参数sockfd:是监听套接字也就是listen 后过的sockfd。在全连接队列里面获取连接。第二个参数addr:传入 sockaddr_in 结构体的地址内核会填充客户端的ipport等。第三个参数addrlen:是传入客户端结构体的大小。connect:向远端服务器发起三次握手请求建立连接一般由客户端发起。返回值连接建立成功返回0失败返回-1。第一个参数sockfd:是自己客户端socket()创建的连接用来接受和发送消息。第二个参数addr:传入 sockaddr_in 结构体的地址结构体是服务器地址信息 包括ipport等。第三个参数addrlen:是传入服务器结构体的大小。write():read():send():recv():1. 适用范围read/write通用IO文件、管道、socket都能用send/recv仅能操作套接字。​2. 参数差异send、recv多一个flags标志参数可设置特殊收发规则读取紧急数据、非阻塞读取等read、write无此功能。​3. 调用关系不带flags的recv等同于read不带flags的send等同于write。close():关闭文件描述符。

相关新闻

Ultralytics:解读SCDown模块

Ultralytics:解读SCDown模块

Ultralytics:解读SCDown模块前言相关介绍Ultralytics 简介前提条件实验环境SCDown(可分离卷积下采样模块)代码实现功能初始化参数前向方法使用示例流程示意图代码解读注意事项优缺点优点缺点参考文献前言 由于本人水平有限,难免出…

2026/7/27 8:37:00 阅读更多 →
SAP学习笔记 - MM模块07 - 盘点流程,MI01-创建盘点凭证,MI21-打印凭证,MI04-输入实际盘点数量,MI07/MI20-差异过账

SAP学习笔记 - MM模块07 - 盘点流程,MI01-创建盘点凭证,MI21-打印凭证,MI04-输入实际盘点数量,MI07/MI20-差异过账

上一章学些了MM的内容,本章继续学习SAP的内容。 SAP学习笔记 - MM模块06 - 库存物料,消耗物料,物料类型NLAG,如何确定会计科目,无物料信息记录(通过物料组),排序字符串,消耗物料的收货-CSDN博客…

2026/7/27 8:37:00 阅读更多 →
手机AI技术解析:五大进化方向与用户体验升级

手机AI技术解析:五大进化方向与用户体验升级

1. 手机AI的五大进化方向:从实验室到口袋的革命 作为一名长期跟踪智能终端发展的从业者,我深刻感受到2026年将成为移动AI的转折点。当我们在MWC展会和各大品牌发布会上看到这些创新时,最令人震撼的不是技术本身,而是AI如何悄无声息…

2026/7/27 8:37:00 阅读更多 →

最新新闻

晚风棱镜数字权益深耕虚拟商品赛道

晚风棱镜数字权益深耕虚拟商品赛道

数字生活全面渗透当下,影音会员、游戏点券、生活卡券、数字素材、软件授权等虚拟商品,早已成为大众日常消费、企业营销运营的刚需。传统综合电商虚拟品类分散、货源杂乱、交易安全缺乏保障,垂直数字权益交易市场长期存在效率、合规、售后多重…

2026/7/27 8:49:07 阅读更多 →
遇到格式报错别慌!AI 导出鸭全方位处理:Claude 公式粘贴后乱码怎么解决?多工具对比方案汇总

遇到格式报错别慌!AI 导出鸭全方位处理:Claude 公式粘贴后乱码怎么解决?多工具对比方案汇总

AI 导出鸭实操指南:Claude公式粘贴后乱码怎么解决?多渠道导出格式错乱问题一站式修复教程遇到格式报错别慌!AI 导出鸭全方位处理:Claude公式粘贴后乱码怎么解决?多工具对比方案汇总AI 导出鸭专业格式转换工具&#xff…

2026/7/27 8:49:07 阅读更多 →
Claude 文档怎么导出?无需复杂操作,AI 导出鸭全平台适配

Claude 文档怎么导出?无需复杂操作,AI 导出鸭全平台适配

Claude文档怎么导出?AI导出鸭一站式搞定各类导出难题Claude文档怎么导出?对比5种导出方式,AI导出鸭优势突出Claude文档怎么导出?无需复杂操作,AI导出鸭全平台适配 引言 不少日常使用Claude做文案、方案、数据分析的从业…

2026/7/27 8:49:07 阅读更多 →
Jupyter客户端MATLAB语法支持:配置指南与实战应用

Jupyter客户端MATLAB语法支持:配置指南与实战应用

在 Jupyter 中实现客户端 MATLAB 语法支持:完整配置与实战指南 对于数据科学和工程计算领域的开发者来说,MATLAB 和 Jupyter 是两个不可或缺的工具。MATLAB 提供强大的数学计算和可视化能力,而 Jupyter 则以其交互式编程环境著称。但长期以来…

2026/7/27 8:49:07 阅读更多 →
YOLOv11与CSFCN融合的软塑料检测系统开发实践

YOLOv11与CSFCN融合的软塑料检测系统开发实践

1. 项目背景与核心价值在工业质检和环保回收领域,软塑料制品的自动检测一直是个技术难点。传统人工分拣效率低下且成本高昂,而常规的视觉检测方案又难以应对软塑料的复杂特性——形状不规则、表面反光、纹理多变。我们团队基于YOLOv11框架,创…

2026/7/27 8:49:06 阅读更多 →
DSP热设计实战:从热阻解析到PCB散热优化,保障SM320F28335-HT稳定运行

DSP热设计实战:从热阻解析到PCB散热优化,保障SM320F28335-HT稳定运行

1. 项目概述:为什么热设计是DSP稳定性的生命线如果你正在使用TI的SM320F28335-HT这颗高性能DSP,尤其是在工业电机驱动、大功率变频器或者高温环境下的控制系统中,那么你大概率已经或即将遇到一个绕不开的难题:芯片烫手。这颗芯片性…

2026/7/27 8:48:06 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻