day6 socket套接字及TCP的实现框架

news/2025/3/16 12:30:13/

socket套接字

Berkeley UNIX 操作系统定义了一种API它又称为套接字接口(socket interface);

socket作用:

socket常见API介绍

/*创建套接字*/
int socket(int domain, int type, int protocol);
/*绑定通信结构体*/
int bind(int sockfd, const, struct sockaddr *addr, socklen_t addrlen);
/*监听套接字*/
int listen(int sockfd, int backlog);
/*处理客户端发起的连接,生成新的套接字*/
int accept(int sockfd, struct sockaddr *addr, socklen_t addrlrn);
/*向服务器发起连接请求*/
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlrn);

三元组(IP地址、端口、协议):

IP地址:标识计算机;

端口号:标识计算机当中的进程;

协议:指定数据传输的方式;(主要指的是TCP和UDP)

套接字的类型:

1、流式套接字 (SOCK_STREAM) 提供可靠的、面向连接的通信流;它使用TCP,从而保证数据传输的可靠性和顺序性

2、数据报套接字 (SOCK_DGRAM) 定义了一种不可靠、面向无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP

3、原始套接字(SOCK_RAW) 允许直接访问底层协议,如IP或ICMP,它功能强大但使用较为不便,主要用于协议开发。

 套接字属于一种特殊的文件描述符;

Unix域套接字用于本地进程间通信;

TCP通信的实现过程

主要过程:

1、建立连接;(socket, bind, listen, accept)

2、数据传输;(read/write  recv/send)

3、连接释放;(close shutdown)


http://www.ppmy.cn/news/53420.html

相关文章

pod-debug初始化容器

pod-debug初始化容器 上文&#xff0c;我们已经学习了如何配置初始化镜像&#xff0c;那么本文将带大家学习如何Debug初始化容器。 ps: 本文使用<pod-name> 来指代Pod的名称&#xff0c;使用<init-container-1> 和 <init-container-2> 来指代初始化容器的名…

改进YOLOv8/YOLOv5系列:创新必备,助力涨点。原创魔改注意力,动态通道注意力模块DyCAConv,带改进描述

动态通道注意力模块DyCAConv 1. 背景三、YOLOv5改进代码及加入方法1.YOLO5中添加:注意力代码四、YOLOv8改进代码及加入方法1.注册YOLOv8yaml文件四、测试涨点!1. 背景 在深度学习领域,尤其是计算机视觉任务中,神经网络需要捕捉图像中的多尺度特征以实现有效的特征表征。为…

echo,date,bc命令详解

文章目录 echo&#xff0c;date&#xff0c;bc命令详解echo(输出文本)date(显示日期的命令)date命令的--date选项date命令 bc(高精度计算器) echo&#xff0c;date&#xff0c;bc命令详解 echo(输出文本) echo命令是一个常用的Shell命令&#xff0c;用于在终端上输出文本。它…

触摸屏是如何诞生的,它又是如何影响和改变着我们的生活?

芊芊玉指在小小的屏幕上滑动&#xff0c;天下事便了然于胸。这就是手机触摸屏给我们的生活带来的改变。 曾几何时&#xff0c;我们是生活在九宫格或者全键盘上的“拇指族”。一股浪潮席卷而来&#xff0c;手机上的实体按键都消失了&#xff0c;虚拟按键仅在需要时出现。触摸屏是…

cpu load与cpu使用率与线程的5种状态

cpu load值是正在运行和就绪等待状态线程数之和。 load越大&#xff0c;说明线程竞争时间片越激烈&#xff0c;线程等待队列越长。 对于8核系统&#xff0c;如果load为10&#xff0c;说明8个线程正在执行&#xff0c;2个线程等待时间片。 cpu利用率 load越大&#xff0c;cpu使…

docker_查询日志并输出到文件

想查询一下docker容器内服务的log&#xff0c;但是因为log太多&#xff0c;想自定义筛选一下。 1、导出全部的log到文件 docker logs dockerId >>log.txt 2、按照时间导出log信息 但是全部的log太多&#xff0c;我想按照时间进行查询&#xff0c;这就用到了--since参…

数据仓库与数据库之间的区别与联系

文章目录 一、数据库与数据仓库的区别 1.1、区别 1.2、ACID内容 二、原子性&#xff08;Atomicity&#xff09; 三、持久性&#xff08;Durability&#xff09; 四、隔离性&#xff08;Isolation&#xff09; 1、锁机制 2、脏读、不可重复读和幻读 2、事务隔离级别 五…

k8s-官网阅读-livenness/readiness/startup Probes

Configure Liveness, Readiness and Startup Probes | Kubernetes 对官方文档的阅读、理解&#xff0c;做一个记录。 用到哪里看到哪里。 看之前&#xff0c;总结之前&#xff0c;要问自己&#xff0c;是想真的搞懂&#xff0c;还是想应付了事&#xff0c;为了完成而完成&am…