0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常见的socket三种类型

工程师邓生 来源:未知 作者:刘芹 2023-12-08 11:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

常见的socket三种类型

Socket是计算机网络中常用的通信机制,在网络编程中起到了非常重要的作用。Socket可以分为三种类型:流套接字(Stream Socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)。

一、流套接字(Stream Socket):

流套接字是最常用的一种Socket类型。它基于TCP协议(传输控制协议)实现,具有可靠性高、连接稳定持久的特点。在使用流套接字时,数据按照字节流的形式进行传输,发送方将数据以流的形式写入套接字,接收方则从套接字中以流的形式读取数据。

流套接字的使用方式如下:

1. 创建套接字:通过调用socket()函数创建一个套接字对象,并指定协议族为AF_INET(IPv4)或AF_INET6(IPv6),协议类型为SOCK_STREAM(TCP协议)。

2. 绑定端口:通过调用bind()函数,将套接字与一个具体的IP地址和端口绑定。

3. 监听连接:通过调用listen()函数,开始监听指定端口的连接请求。

4. 接受连接:通过调用accept()函数,接受客户端的连接请求,创建一个新的套接字与客户端建立连接。

5. 通信交互:通过新的套接字进行数据的读写操作,实现服务器与客户端之间的通信。

6. 断开连接:当通信结束或者出现错误时,通过调用close()函数关闭套接字连接。

二、数据报套接字(Datagram Socket):

数据报套接字基于UDP协议(用户数据报协议)实现,是一种无连接的Socket类型,具有传输速度快和实时性强的特点。在使用数据报套接字时,数据以数据包(Datagram)的形式进行传输,每个数据包都包含源地址和目标地址的信息。

数据报套接字的使用方式如下:

1. 创建套接字:通过调用socket()函数创建一个套接字对象,并指定协议族为AF_INET(IPv4)或AF_INET6(IPv6),协议类型为SOCK_DGRAM(UDP协议)。

2. 绑定端口:通过调用bind()函数,将套接字与一个具体的IP地址和端口绑定。

3. 通信交互:通过sendto()函数将数据发送到指定的目标地址,或者通过recvfrom()函数从指定的源地址接收数据。

4. 断开连接:当通信结束或者出现错误时,通过调用close()函数关闭套接字连接。

三、原始套接字(Raw Socket):

原始套接字是一种非常底层的Socket类型,是一种对网络协议的直接访问方式,具有很高的灵活性和自由度。原始套接字可以访问报文层或者网络接口层的数据,可以发送和接收任意的网络数据包。

原始套接字的使用方式如下:

1. 创建套接字:通过调用socket()函数创建一个套接字对象,并指定协议族为AF_INET(IPv4)或AF_INET6(IPv6),协议类型为SOCK_RAW。

2. 设置选项:通过调用setsockopt()函数设置原始套接字的选项,如IP_HDRINCL选项来指示发送的数据包是否包含IP头部。

3. 通信交互:通过sendto()函数将数据发送到指定的目标地址,或者通过recvfrom()函数从指定的源地址接收数据。

4. 断开连接:当通信结束或者出现错误时,通过调用close()函数关闭套接字连接。

总结:

流套接字适合在要求可靠性和稳定性的应用中使用,如网页浏览、文件下载等;数据报套接字适合在要求传输速度和实时性的应用中使用,如实时音视频传输、网络游戏等;原始套接字适合在需要对网络协议进行底层操作的应用中使用,如网络安全监控、网络流量分析等。不同类型的Socket适用于不同的网络应用场景,开发人员可以根据实际需求进行选择和使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7857

    浏览量

    93649
  • Socket
    +关注

    关注

    1

    文章

    214

    浏览量

    37106
  • UDP协议
    +关注

    关注

    0

    文章

    71

    浏览量

    13809
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一篇讲清楚 Claude 的三种使用模式:Chat、Cowork、Code 到底有啥区别?

    是命令行写代码,Cowork 又是什么?为什么 Anthropic 要做个产品?我应该用哪个? 这篇文章用一万字(不到)讲清楚这三种模式的定位、差异、适用场景,以及如何根据自己的工作类型选对工具。 一
    的头像 发表于 05-18 11:59 235次阅读

    UPS的三种主要类型与输出波形解析:你的设备需要哪种“保护伞”

    ,性能表现也天壤之别?为何有些设备接入UPS后反而工作不稳定?答案,就隐藏在UPS的三种主要技术类型及其核心的输出波形差异之中。理解这两点,是您为关键设备选择正确
    的头像 发表于 04-14 13:13 176次阅读
    UPS的<b class='flag-5'>三种</b>主要<b class='flag-5'>类型</b>与输出波形解析:你的设备需要哪种“保护伞”

    ATE系统中这三种测量卡的架构和功能

    测试仪行业面临的一个挑战是,如何在不显著增加测试仪时间、尺寸或成本的情况下,满足对大量测试通道的需求。尽管半导体测试仪(也称为自动测试器件(ATE))种类繁多,但在大多数测试仪都包含三种主要卡:电压
    的头像 发表于 04-09 15:12 307次阅读
    ATE系统中这<b class='flag-5'>三种</b>测量卡的架构和功能

    防漆的常见类型及其特点

    ”应运而生。所谓“防漆”,是指具有防潮、防霉、防盐雾功能的保护性涂层材料,广泛用于涂覆印刷电路板表面。根据其化学成分和固化方式的不同,防漆可分为多种类型。本文将重点介
    的头像 发表于 02-06 10:36 800次阅读
    <b class='flag-5'>三</b>防漆的<b class='flag-5'>常见</b><b class='flag-5'>类型</b>及其特点

    轻松掌握——LuatOS socket基础知识和应用开发

    socket课程主要包含以下几个部分: 1、TCP/IP总体介绍; 2、LuatOS上的 4G/WiFi/以太网 三种网络环
    的头像 发表于 01-28 20:07 526次阅读
    轻松掌握——LuatOS  <b class='flag-5'>socket</b>基础知识和应用开发

    请问CW32芯片的三种工作模式是什么?

    CW32芯片的三种工作模式是什么?
    发表于 12-26 06:48

    三种类型内存的使用

    的,因为底层数据会被默默删除。自动存储通常被称为“栈”。 分配的存储:运行malloc() 会返回的内存类型,这种内存会一直保留,直到被 free() 函数释放,所以可以被传递到任何地方,包括返回
    发表于 12-12 06:43

    单模光纤线有几种类型

    单模光纤线根据ITU-T国际标准(G.65x系列)主要分为以下六种类型,每种类型在传输性能、应用场景和成本上存在差异: G.652(常规单模光纤): 核心特性:零色散波长在1310nm附近
    的头像 发表于 09-11 10:00 2969次阅读

    SC、LC、FC和ST四种类型中哪类价格最贵

    在SC、LC、FC和ST四种类型的光纤跳线中,FC类型的光纤跳线通常价格相对较高,具体分析如下: FC类型的光纤跳线: 特点:采用金属螺纹套筒连接,具有较高的稳定性和抗拉强度,适用于高振动环境或需要
    的头像 发表于 07-25 10:16 1447次阅读

    太阳光模拟器的常见类型及分类

    ,为材料化学、航空航天等众多领域提供了全场景太阳光环境模拟解决方案。下文将详细介绍太阳光模拟器的常见类型及分类依据。三种大气质量(
    的头像 发表于 07-24 11:27 798次阅读
    太阳光模拟器的<b class='flag-5'>常见</b><b class='flag-5'>类型</b>及分类

    CAN总线电容过大?三种解决方案来了

    在新能源汽车路试中,CAN总线传输异常是一个常见问题。本期我们将探讨由于总线电容过大导致的下降沿过缓问题,并介绍三种有效的解决方案。CAN总线下降沿过缓问题新能源路试工程师在分析CAN总线波形
    的头像 发表于 07-22 11:36 946次阅读
    CAN总线电容过大?<b class='flag-5'>三种</b>解决方案来了

    MEMS中的三种测温方式

    在集成MEMS芯片的环境温度测量领域,热阻、热电堆和PN结原理是三种主流技术。热阻是利用热敏电阻,如金属铂或注入硅的温度电阻系数恒定,即电阻随温度线性变化的特性测温,电阻变化直接对应绝对温度,需恒流源供电。
    的头像 发表于 07-16 13:58 2054次阅读
    MEMS中的<b class='flag-5'>三种</b>测温方式

    1553B总线常见三种组网方式

    1553B总线作为航空电子系统中的关键通信协议,其组网方式直接影响系统的可靠性和实时性。本文将深入解析1553B总线的三种典型组网结构:单总线结构、双冗余总线和多总线分层架构,并结合实际应用场景分析
    的头像 发表于 06-21 17:39 2688次阅读
    1553B总线<b class='flag-5'>常见</b><b class='flag-5'>三种</b>组网方式

    开关电源三种控制模式:PWM/PFM/PSM

    PWM/PFM/PSM 三种控制模式的定义通常来说,开关电源(DC-DC)有三种常见的调制方式分别为: 脉冲宽度调制(PWM) 脉冲频率调制(PFM) 脉冲跨周期调制(PSM) 在功率集成电路
    发表于 06-09 16:11

    HarmonyOS基础组件:Button三种类型的使用

    中的Button相较于Android原生来说,功能比较丰富,扩展性高,减少了开发者的代码数量,简化了使用方式。不仅可以自定义圆角还支持三种样式。 常用属性 名称 参数类型 描述 type
    的头像 发表于 06-09 15:48 2768次阅读
    HarmonyOS基础组件:Button<b class='flag-5'>三种类型</b>的使用