《TCP IP网络编程》第二章

news2024/11/17 19:45:26

2023.7.6


第2章 套接字类型与协议设置

2.1 套接字协议及其数据传输特性

协议:计算机间对话必备的通信规则,即为了完成数据交换而定好的约定。

socket函数的三个参数:int socket(int domain, int type, int protocol)

  • domain:套接字中使用的协议族信息。 常见协议族有PE_INET ipv4互联网协议族
  • type:套接字数据传输类型信息
  • protocol:计算机间通信中使用的协议信息

套接字类型1:面向连接的套接字(SOCK_STREAM)  其有下列特征:

  • 传输过程数据不丢失
  • 按序传输数据
  • 传输的数据不存在数据边界

        通过套接字传输的数据将保存到一个缓冲数组中,因此收到数据并不意味着马上调用read函数,只要不超过数组容量,则有可能在数据填充满缓冲后通过1次read函数调用读取全部,也有可能分成多次read函数调用进行读取。

        一句话概括面向连接的套接字:可靠的、按序传递的、基于字节的、面向连接的数据传输方式的套接字。

套接字类型2:面向消息的套接字(SOCK_DGRAM) 其有下列特征:

  • 强调快速传输而非传输顺序。
  • 传输的数据可能丢失和损毁
  • 传输的数据有数据边界
  • 限制每次传输的数据大小

        存在数据边界意味着接收数据的次数应和传输次数相同。

        一句话概括面向消息的套接字:不可靠的、不按序传递的、以数据的高速传输为目的的套接字。

创建TCP套接字:int tcp_ socket = socket(PF_ INET, SOCK_ STREAM, IPPROTO TCP);

创建UDP套接字:int udp_ socket = socket(PF_ INET, SOCK_ DGRAM,IPPROTO UDP);

实验:


        服务器端发送了13字节的数据,客户端调用13次read函数进行读取。


       

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【InnoDB 存储引擎】InnoDB 存储引擎的行格式,有 Compact、Redundant、Dynamic 等行格式还有它们配套实验(实验篇)

文章目录 1 InnoDB 行记录格式(实验)1.1 Compact 行格式实验1.1.1 实验步骤1.1.2 分析捞出来的数据1.1.3 疑问 1.2 Redundant 行格式实验1.2.1 实验步骤1.2.2 分析捞出来的数据 1.3 CHAR 列类型的存储1.3.1 实验步骤1.3.2 分析捞出来的数据 2 参考资料 1…

【Python】(一)Python3.10的安装

在有java基础的情况下,开始学习Python,并且最终实现是在windows操作系统中能够开发一个web页面 一、下载 官网:www.python.org/downloads/windows/ 向下滚动找到3.10.11,根据windows的位数选择对应的包,下载 二、安装 下载完成…

在Linux系统下安装部署Singularity容器

在以下两篇博客中: 浅谈Singularity容器_男孩李的博客-CSDN博客 Singularity容器常用命令_ubuntu卸载singularity_男孩李的博客-CSDN博客 我们分别介绍了Singularity容器以及Singularity容器的常用命令,相信大家对高性能计算容器Singularity并不陌生了…

SQL多表查询

多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,…

C++初识模板

文章目录 👑1. 泛型编程👒2. 模板📿2.1 函数模板🎶2.11 类型推理🎶2.12 函数模板实例化🎶2.13 匹配原则 📿2.2 类模板 👑1. 泛型编程 void Swap(int& a, int& b) {int tmp …

C++ | 延时函数

C | 延时函数 文章目录 C | 延时函数函数 sleep/usleep头文件 boost sleep自定义函数时间单位转换Reference>>>>> 欢迎关注公众号【三戒纪元】 <<<<< 函数 sleep/usleep unsigned sleep(unsigned seconds); // 单位是秒 s sleep(33); // 延时33…

mybatis和mybatisplus的区别

MyBatis-Plus是对MyBatis框架的封装&#xff0c;MyBatis-Plus具有许多针对CRUD进行的简化方法&#xff0c;通过继承BaseMapper进行实现&#xff0c;简单的说 &#xff0c;如果你使用了MyBatis-Plus&#xff0c;那么项目单表查询都不需要你写sql了&#xff0c;利用自带的方法即可…

NC68 跳台阶

public class Solution {public int jumpFloor(int target) {if(target < 1)return 1;elsereturn jumpFloor(target - 1) jumpFloor(target - 2); } }

日志全链路追踪之MDC

1.引言 Hi&#xff0c;大家好&#xff0c;我是有清 苏格拉底说过&#xff1a;日志打得好&#xff0c;排查没烦恼 我们日常的开发工作中&#xff0c;排查问题去看日志应该是家常便饭的事&#xff0c;日志可以帮助我们清楚的知道当前代码的走向以及链路数据&#xff0c;通常我们现…

JavaScript 使用链接跳转传递数组对象数据类型的方法

文章目录 首先了解一下正常传递基本数据类型JavaScript 跳转页面方法JavaScript 路由传递参数JavaScript 路由接收参数传递对象效果&#xff1a; 在前端有的时候会需要用链接进行传递参数&#xff0c;基本数据类型的传递还是比较简单的&#xff0c;但是如果要传递引用数据类型就…

Python实现PSO粒子群优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

WH5097D有源矩阵驱动的Mini LED背光应用方案

Miniled技术为lcd的全面升级版&#xff0c;Miniled的背光层在单位面积内可以容纳更多LED&#xff0c;从而大大提高背光源数量&#xff0c;因此可以进行区域亮度调节的设计&#xff0c;从而在个别区域实现关闭led从而达到完全的黑色&#xff0c;不仅减小了功耗&#xff0c;而且由…

【KingbaseES】如何查看表结构

SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name test_szie;

梅雨季“霉”烦恼,防潮自救指南请收好

魔都的雨下个不停&#xff0c;天气也异常闷热&#xff0c;原来是上海已经入梅了。“雨连连、湿哒哒、闷兮兮”的梅雨季&#xff0c;湿漉漉的空气&#xff0c;感觉身体也跟着“发霉”。不想做梅雨季最“潮”人&#xff0c;赶紧码住这份抗“霉”攻略。 梅雨季最大的特点是空气湿度…

数据库DDL

目录 DDL数据库的操作 SQL表操作&#xff1a; 数据库的数据类型&#xff1a; 数值类型​编辑 字符串类型 日期时间类型 DDL表操作 - 修改​编辑 总结&#xff1a; DDL数据库的操作 演示&#xff1a; SQL表操作&#xff1a; 数据库的数据类型&#xff1a; 数值类型 字符串…

Person相关系数

衡量两个变量线性相关程度。先画散点图看是否为线性相关&#xff0c;相关系数才有用。 总体&#xff1a;要考察对象的全部个体 样本&#xff1a;从总体中所抽取的一部分个体 用样本的统计量估计总体的统计量 总体Person相关系数 协方差Cov(X,Y)反映X、Y的相关性 Person相关系…

zabbix 应用(二)

目录 一&#xff1a;部署 zabbix 代理服务器 1、准备环境 2、 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy 3、 部署数据库&#xff0c;要求 MySQL 5.7 或 Mariadb 10.5 及以上版本 4、 初始化数据库 5、创建数据库 指定字符集&#xff0c;创建 zabbix 数据库用户…

从零开始的知识图谱生活,构建一个百科知识图谱,完成基于Deepdive的知识抽取、基于ES的简单语义搜索、基于 REfO 的简单KBQA

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

华为云“All in ”大模型:释放人工智能巨能!看低代码开发平台引领未来

前言 截至目前&#xff0c;全球已发布数百个大模型&#xff0c;我国年内已发布80多个大模型&#xff0c;面向消费者端的应用百花齐放。我们认为&#xff0c;大模型在行业里多作贡献&#xff0c;才是正确的道路。 当下发展现状 今年以来&#xff0c;人工智能的发展因ChatGPT进入…

MAC |如何在mac上阅读caj文件?

背景&#xff1a;工作群中老板突然发了一个caj的论文过来&#xff0c;让大家阅读学习。 于是就开启了解决&#xff1a;在mac上阅读caj文件之旅。 首先&#xff0c;尝试了这篇文章的方法&#xff1a; 教你如何在Mac上打开CAJ格式的文件_普通网友的博客-CSDN博客 以失败告终。…