网络编程套接字(2)——Socket套接字

news/2024/4/15 4:30:52/文章来源:https://blog.csdn.net/cool_tao6/article/details/136547864

目录

一、概念

二、分类

1、流套接字(使用传输层TCP协议)

TCP的特点

2、数据报套接字(使用传输层UDP协议)

UDP的特点

3、原始套接字


一、概念

        Socket套接字,是由系统提供用于网络通信的技术,是基于TCP / IP协议的网络通信的基本操作单元。

        基于Socket套接字的网络程序开发就是网络编程.。


二、分类

        要想进行网络编程,需要使用系统的API,本质上还是传输层提供的。

        传输层涉及到的协议,主要是这两个:TCP,UDP。由于这两个协议之间的差异还是挺大的,它们API的差异也比较大。

        Socket套接字主要针对传输层协议分为如下三类:

1、流套接字(使用传输层TCP协议

                TCP,即Transmission Control Protocol(传输控制协议),传输层协议。

TCP的特点

        1、有连接

                不是物理上的连接,虚拟的连接,比如打电话,打电话者拨号,接电话者要点击接通才能进行通信,连接的特点得是双方都能认同

        2、可靠传输

                网络上存在的 “异常情况” 是非常多的,无论使用什么软硬件技术手段,都无法100%保证,网络数据一定能从 A 传输到 B。

                这里的可靠传输,主要指的是发送的数据到没到,发送方都能清楚的感知到

        3、面向字节流

                此处谈到的字节流和文件IO中的字节流完全一样,网络传输的基本单位是字节。

        4、全双工

                一个信道,可以双向通信,比如像斑马线上的马路,同一时间,对面的人既可以对面走过来,也可以从我这里走到对面。

        5、有接受缓冲区,也有发送缓冲区

        6、大小不限

        对于字节流来说,可以简单理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次接收。(网络传输的基本单位是字节)

2、数据报套接字(使用传输层UDP协议

        UDP,即User Datagram Protocol(用户数据报协议)。传输层协议。

UDP的特点

        1、无连接

                则是发微信 / 发短信,无论你是否同意,消息都能给你发送过去

        2、不可靠传输

                发送的数据到没到,发送方不都能清楚的感知到

        3、面向数据报

                每次传输的基本单位是一个 数据报(由一系列的字节构成的),特定的结构。

        4、全双工

                半双工就只能单向通信,比如羽毛球桶的羽毛球,同一时间,只能从一个方向取出羽毛球来。

        5、有接受缓冲区,也有发送缓冲区

        6、大小受限,一次最多传输64k

        对于数据报来说,可以简单地理解为,传输数据是一块一块的,发送一块数据假如100字节,必须一次发送,接收也必须一次接收100字节,而不能分100次,每次一个字节。

3、原始套接字

        原始套接字用于自定义传输层协议,用于读写内核没有处理的IP协议数据。我们不学习原始套接字,简单了解即可。


都看到这了,点个赞再走吧,谢谢谢谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中霖教育:注册安全工程师考是科目有哪些?

注册安全工程师的类型是职业资格证书,需要满足报名条件才能参加考试,考试通过就能发放证书。报名时间一般在八月份,考试时间在十月底左右。 考试科目: 《安全生产法律法规》 《安全生产管理》 《安全生产技术基础》 《安全生…

【算法训练营】:期末考试

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 如果需要答案代码可以私聊博主 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~ 考题12-1 题目描述 输入格式 输出格式 输出到标准输出。 输出一行一个整数…

在表格中循环插入表单

<template><div class"key">{{ruleForm.casesRange}}<el-form label-position"top" :model"ruleForm" refruleForm><el-form-item label"这个表格怎么写"><el-table :data"tableData" border>…

42、网络编程/多点通信和域套接字通信模型20240304

一、多点通信之广播的收发端实现 1.广播发送端代码&#xff1a; #include<myhead.h>int main(int argc, const char *argv[]) {int sfdsocket(AF_INET,SOCK_DGRAM,0);//创建套接字if(sfd-1){perror("socket,error");return -1;}int broadcast1;//设置套接字广…

力扣--滑动窗口438.找到字符串中所有字母异位词

思路分析&#xff1a; 使用两个数组snum和pnum分别记录字符串s和p中各字符出现的次数。遍历字符串p&#xff0c;统计其中各字符的出现次数&#xff0c;存储在pnum数组中。初始化snum数组&#xff0c;统计s的前m-1个字符的出现次数。从第m个字符开始遍历s&#xff0c;通过滑动窗…

liunx操作系统 环境变量

环境变量 main函数参数 命令行参数环境变量 环境变量的查看环境变量的获取 main函数参数 命令行参数 main函数是有参数的&#xff0c;只是我们一般不适用 这是main函数从bash中读取进程数据使用的一个基本入口。 下面进行简单演示。 o 好oo都是我们输入的命令行参数。其实&a…

韦东山嵌入式Liunx入门驱动开发五

文章目录 一、驱动程序基石1-1 休眠与唤醒1-2 POLL机制1-3 异步通知(1) 异步通知程序解析(2) 异步通知机制内核代码详解 1-4 阻塞与非阻塞1-5 定时器(1) 内核函数(2) 定时器时间单位 1-6 中断下半部 tasklet1-7 工作队列1-8 中断的线程化处理1-9 mmap 本人学习完韦老师的视频&a…

springboot244基于SpringBoot和VUE技术的智慧生活商城系统设计与实现

智慧生活商城系统的设计与实现 摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&…

MySQL--MHA高可用方案

MHA高可用方案实行 1.1MHA简介 MHA 在监控到 master 节点故障时&#xff0c;会提升其中拥有最新数据的 slave 节点成为新的master 节点&#xff0c;在此期间&#xff0c;MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能&a…

通过测试自动化转移安全关键软件测试

我们正面临安全关键软件的成本危机&#xff0c;这意味着所需增加的功能已经超出了支付其开发费用的能力。例如&#xff0c;波音 787 项目需要 650 万行代码&#xff0c;设计、开发和测试成本达 40 亿美元。波音777X项目的成本数字并未公开披露&#xff0c;波音737 MAX最初估计为…

python异常机制

当代码出现异常后底下代码都不会被执行了&#xff0c;也就是程序崩溃了。当然能避免异常的话尽量避免但是有的时候这个是没有办法避免的。 异常处理 &#xff08;注&#xff1a;异常处理是从上往下处理&#xff0c;所以编写代码时要注意&#xff09; 语法 try:可能出现异常…

昇腾芯片解析:华为自主研发的人工智能处理器全面分析

在当今科技发展的浪潮中&#xff0c;昇腾芯片作为一种新兴的处理器&#xff0c;正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的&#xff1f;这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用&#xff0c;以便读者对其有更全面的…

GitHub登不上:修改hosts文件来解决(GitHub520,window)

参考链接&#xff1a;GitHub520: 本项目无需安装任何程序&#xff0c;通过修改本地 hosts 文件&#xff0c;试图解决&#xff1a; GitHub 访问速度慢的问题 GitHub 项目中的图片显示不出的问题 花 5 分钟时间&#xff0c;让你"爱"上 GitHub。 (gitee.com) GitHub网站…

C++ Qt开发:QFileSystemWatcher文件监视组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或…

利用redis实现秒杀功能

6、秒杀优化 这个是 图灵 的redis实战里面的一个案例 6.1 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤…

python coding with ChatGPT 打卡第22天| 二叉搜索树的操作:插入、删除、修剪、转换

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

django中URL配置和视图渲染

前提&#xff1a; 使用django-admin startproject XXX创建了一个django项目【项目目录为project】 django-admin startproject project 一&#xff1a;控制器配置 在项目的根目录创建一个Controller目录&#xff0c;后续所有的控制器方法都放在此目录下 这里我们在Control…

迅速上手:CentOS 系统下 SSH 服务配置指南

前言 掌握 SSH 服务&#xff0c;就像拥有了一把解锁网络世界的钥匙。本文深入浅出地介绍了如何使用 SSH&#xff08;Secure Shell&#xff09;服务&#xff0c;从连接远程服务器到安全文件传输&#xff0c;让你轻松驾驭远程管理与数据传输&#xff0c;提高工作效率&#xff0c…

[密码学]入门篇——加密方式

一、概述 加密方法主要分为两大类&#xff1a; 单钥加密&#xff08;private key cryptography&#xff09;&#xff1a;加密和解密过程都用同一套密码双钥加密&#xff08;public key cryptography&#xff09;&#xff1a;加密和解密过程用的是两套密码 历史上&#xff0c…

GraphGeo参文13:Modelling of IP Geolocation by use of LatencyMeasurements(传统的归一化流)

[13] Peter Hillmann, Lars Stiemert, Gabi Dreo Rodosek, and Oliver Rose. 2015. Modelling of IP Geolocation by use of Latency Measurements. In CNSM. 173–177. ABSTRACT IP地理定位是许多应用领域的关键促成因素,如内容交付网络、目标广告和执法。因此,需要提高准确…