网络编程--01--socket简介--套接字

2023-05-16

socket–套接字

什么是Socket

  • 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据.

  • Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。

  • Socket是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,是支持TCP/IP协议的路通信的基本操作单元。使用中的每一个套接字都有其类型和一个与之相连进程

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。
  我的理解就是Socket就是该模式的一个实现:即socket是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。

Socket通信实现步骤解析

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表示方法

套接字Socket=(IP地址:端口号)
套接字的表示方法是点分十进制的lP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。例如:如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)

主要类型

1.流套接字(SOCK_STREAM)

流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议

2.数据报套接字(SOCK_DGRAM)

数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP( User DatagramProtocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理 。

3.原始套接字(SOCK_RAW)

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络编程--01--socket简介--套接字 的相关文章

  • 香橙派如何扩容升级内存?超简单迁移系统到新的SD卡,树莓派也适用

    香橙派扩容迁移系统到新的SD卡 前言迁移系统新系统测试 本文博客地址 xff1a 香橙派迁移系统到新的 SD 卡 前言 刚开始用香橙派的时候 xff0c 用的是一个 16G 的 SD 卡 xff0c 但随着系统上装的软件越来越多 xff0c
  • 博途(TIA)软件安装教程;博途软件安装常见问题解决办法

    博途软件安装教程 xff0c 这里有两位前辈写的非常不错 xff0c 但在具体细节不够充分 xff0c 对于第一次接触此类软件的小伙伴来说不太友好 xff0c 于是在此进行补充 xff0c 并对安装中常见的问题进行一个汇总 建议 安装时主要
  • zabbix 监控源代码安装

    实验环境 192 168 0 108 server端 192 168 0 109 agent端 步骤一 配置两台虚拟机确保ip能连网 配置l两台主机名 vim etc hostname 配置两台主机hosts文件 cat etc hosts
  • exec函数与fork函数的配合使用

    1 实现功能 当父进程检测到输入为1的时候 xff0c 创建子进程把配置文件的字段值 LENG 61 1修改为LENG 61 6 修改掉 代码如下 xff1a 将该修改配置文件通过gcc o 编译生成可执行文件changeData xff0
  • java中的Arrays.sort()的几种用法

    目录 1 第一种2 第二种方法3 第三种方法4 额外补充 for each的语法结构 直奔主题 Arrays sort 有三种用法 1 第一种 Arrays sort int a 查看源码 span class token keyword
  • Maven:导出war包时报错Failed to execute goal org.apache.maven.plugins:maven-war-plugin解决方法(全)

    出现如下问题的时候 是因为在target文件夹下没有生成war文件 Failed to execute goal org apache maven plugins maven war plugin 2 2 war default war o
  • java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

    目录 前言1 学习路线2 学习方法 前言 这篇文章主要总结我之前所学过的框架以及学习路线 从实打实的零基础到框架再到项目 之后实习工作 也在这篇博客中记录我的学习笔记 以及在笔记中遇到的配置安装 代码bug等错误 都从零开始摸索并且记录了下
  • Java抽象类和接口的详细区别(全)

    目录 前言1 抽象类2 接口3 两者结合4 面试总结 前言 这两者经常在笔试以及面试中经常问及 xff0c 甚至在项目实战中还在纠结用哪一种类型 今天就此问题详细剖析一下 以往我的文章中也有稍微提及 xff1a java框架零基础从入门到精
  • Python 通过ImageDraw.rectangle 画矩形框

    目录 1 函数讲解2 示例代码3 补充cv2 rectangle 1 函数讲解 源代码如下 xff1a ImageDraw rectangle xy fill 61 None outline 61 None width 61 1 主要的参数
  • 基于迁移深度学习的遥感图像场景分类

    前述 根据语义特征对遥感图像场景进行分类是一项具有挑战性的任务 因为遥感图像场景的类内变化较大 xff0c 而类间变化有时却较小 不同的物体会以不同的尺度和方向出现在同一类场景中 xff0c 而同样的物体也可能出现在不同的场景里 理论上 x
  • reStructuredText文档图片表格等自动编号以及名称修改

    number figures 61 True numfig 61 True numfig secnum depth 61 1 numfig format 61 39 figure 39 39 图 s 39 39 code block 39
  • Robocup 2D仿真足球机器人环境搭建(Ubuntu 16.04)

    现在很多高校的学生都在搞RoboCup2D仿真足球机器人 xff0c 而平台的搭建便是一大问题 本人也在搭建环境中遇到各种奇奇怪怪的问题 xff0c 有些找了许多网页 xff0c 下面是我对环境搭建 中遇到的问题以及解决方法的总结 希望能帮
  • Robocup 2D仿真足球机器人环境搭建快速搭建

    虽然之前已经写了Robocup 2D仿真足球机器人环境搭建 xff0c 但是后面我找到了更快搭建环境的方法 而且现在很多团队都是在agent底层代码的基础上编写的 之前的方法配置的环境运行agent球队代码会出现错误 通过找资料得知是有些软
  • Robocup 2D新手导读(入门总结)

    目前 xff0c 我们团队接触Robocup 2D比赛也有好几个月了 xff0c 不得不说 这个比赛也有一定难度 尤其是对于第一次接触这个比赛的我们来 说 下面是我的一些总结 xff0c 希望能够帮助你们 1 Robocup 2D的比赛基本
  • Robocup 2D比赛代码导读(agent底层代码指导)

    相信刚开始接触Robocup 2D比赛的萌新 xff0c 都清楚agent的代码看起来是很痛苦的 xff0c 而且不知道从何看起 我个人观点看代码先看bhv和role这部分的代码 bhv行为动作的类的代码涉及到球员的进攻 跑位 防守 铲球等
  • python爬虫接单-资料总结

    相信看到我这篇文章的朋友们 xff0c 都是奔着赚钱来的 当初我也是冲着爬虫接单 可以赚钱 xff0c 一下就报了个将近3000元的爬虫班 python爬虫确实可以接单赚钱 后来学会了之后就迫不及待地加入了接单行列 也确实赚了一些 希望这篇
  • 爬虫Scrapy框架的介绍与使用

    Scrapy Scrapy介绍 爬取网站数据 xff0c 提取结构数据而编写的爬虫应用框架 Scrapy工作流程图 Scrapy命令 span class token number 1 span 创建Scrapy项目 scrapy star
  • 太难为我了,为了这份P7岗offer,我承受了7轮面试

    前言 今年的大环境非常差 xff0c 互联网企业裁员的现象比往年更严重了 xff0c 可今年刚好是我的第一个 五年计划 截止的时间点 xff0c 说什么也不能够耽搁了 xff0c 所以早早准备的跳槽也在疫情好转之后开始进行了 但是 xff0
  • 云计算与大数据概论第五周

    对于 大数据 xff08 Big data xff09 研究机构Gartner给出了这样的定义 大数据 是需要新处理模式才能具有更强的决策力 洞察发现力和流程优化能力来适应海量 高增长率和多样化的信息资产 麦肯锡全球研究所给出的定义是 xf
  • 【hadoop_读写流程】

    14 hadoop 补充 xff1a 解决 linux 网卡丢失问题 xff1a service NetworkManager stop chkconfig NetworkManager off 重启网络 systemctl restart

随机推荐