Socket内涵

本文介绍了网络套接字(Socket)的概念及其在网络通信中的作用。详细解释了Socket如何作为两个程序间双向通信的端点,并讨论了其在Unix/Linux系统中的实现方式。此外,还概述了几种常见的Socket类型及其特点。

什么是网络套接字(Socket)?

什么是网络套接字(Socket)?一时还真不好回答,而且网络上也有各种解释,莫衷一是。下文将以本人所查阅到的资料来说明一下什么是Socket


Socket定义

  • Socket在维基百科的定义:

    A network socket is an endpoint of an inter-process communication across a computer network. Today, most communication between computers is based on the Internet Protocol; therefore most network sockets are Internet sockets.

  • Oracle官网上的定义:

    A socket is one endpoint of a two-way communication link between two programs running on the network.

    Socket是网络上两个程序双向通讯连接的端点

    在Unix/Linux中,一切皆文件。那对于这两个操作系统而言,“端点”就是一个特殊的文件,也就是说Socket实际上就是文件。既然Socket是文件,那就可以用“打开open –> 读写write/read –> 关闭close”模式来操作它,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。

  • 至少需要3个参数来指定:

      1)通信的目的地址;

      2)使用的传输层协议(如TCP、UDP);

      3)使用的端口号。

Socket 类型

 套接字类型是指创建套接字的应用程序要使用的通信服务类型。linux系统支持多种套接字类型,最常用的有以下三种:
1)SOCK_STREAM:流式套接字,提供面向连接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。TCP协议支持该套接字。

2)SOCK_DGRAM : 数据报套接字,提供面向无连接的服务,数据收发无序,不能保证数据的准确到达。UDP协议支持该套接字。

3)SOCK_RAW:原始套接字。允许对低于传输层的协议或物理网络直接访问,例如可以接收和发送ICMP报文。常用于检测新的协议。

详细可参考 —— [tutorialspoint ]

Socket 网络层次

这部分主要参考自《深入浅出Linux工具与编程》(余国平著)
下图画出了套接字位于网络中的层次,它位于传输层以上、应用层以下。Socket编程正是通过一系列系统调用(Socket API)来完成应用层协议(如ftp、http)。
套接字层次图
图 套接字层次图
套接字是对网络中应用层进程之间的通信进行了抽象,提供了应用层进程利用网络协议栈交换数据的机制

Socket API

这里的Socket API指的是Berkeley Sockets API
详细请参考 [维基百科 ]

基于STM32F103单片机,设计了一款智能火灾烟雾检测报警器。该系统能够实时监测环境中的烟雾浓度,并在检测到烟雾浓度超过预设阈值时触发报警,有效预防火灾事故的发生。 主要功能 烟雾浓度检测:通过MQ-135烟雾传感器实时采集环境中的烟雾浓度数据。 LCD显示:使用LCD1602液晶显示屏实时显示当前的烟雾浓度值。 报警功能:当烟雾浓度超过预设阈值时,系统会通过蜂鸣器发出报警信号。 阈值设置:用户可以通过按键设置烟雾浓度的报警阈值,设置的阈值会存储在单片机的Flash中,掉电不丢失。 硬件设计 核心板:采用STM32F103C8T6单片机作为控制核心。 传感器:使用MQ-135烟雾传感器进行烟雾浓度检测。 显示模块:采用LCD1602液晶显示屏显示烟雾浓度。 报警模块:使用蜂鸣器作为报警装置。 按键模块:提供三个按键用于设置烟雾浓度的报警阈值。 软件设计 数据采集:通过AD转换将传感器采集的模拟信号转换为数字信号。 数据处理:对采集到的数据进行处理,计算出实际的烟雾浓度值。 报警逻辑:当烟雾浓度超过预设阈值时,触发报警逻辑,控制蜂鸣器发出报警信号。 阈值设置:通过按键设置烟雾浓度的报警阈值,并将设置的阈值存储在单片机的Flash中。 使用说明 系统启动:上电后,系统自动启动,开始检测环境中的烟雾浓度。 显示查看:通过LCD1602液晶显示屏查看当前的烟雾浓度值。 阈值设置:按下设置键进入阈值设置模式,通过设置+和设置-键调整阈值,设置完成后系统自动保存。 报警触发:当烟雾浓度超过预设阈值时,蜂鸣器会发出报警信号,提醒用户注意。 注意事项 传感器通电后需要预热20秒左右,测量的数据才会稳定。 传感器发热属于正常现象,因为内部有电热丝。 系统设计时考虑了功耗控制,但在长时间使用时仍需注意电源管理。
内容概要:本文介绍了名为《考虑储能和可再生能源误差的售电公司购售电策略(Python代码实现)》的研究,该研究属于顶级SCI复现项目,聚焦于电力市场中售电公司在日考虑储能和可再生能源误差的售电公司购售电策略(Python代码实现)前和日内两个时间尺度下的购售电决策优化。研究综合考虑了储能系统的运行特性以及可再生能源(如风电、光伏)出力预测的不确定性误差,构建了相应的数学模型,并通过Python编程实现了优化求解,旨在帮助售电公司降低运营风险、提高经济效益。文中还提到了相关配套资源,包括YALMIP工具包和其他完整资源的网盘链接,便于读者复现和扩展研究。; 适合人群:具备一定电力系统基础知识和Python编程能力的研究生、科研人员及从事能源优化、电力市场分析等相关领域的技术人员。; 使用场景及目标:①用于复现顶级SCI论文中的购售电优化模型;②研究含不确定性的可再生能源接入背景下,售电公司的风险规避与利润最大化策略;③掌握多时间尺度(日前与日内)优化调度的建模与编程实现方法; 阅读建议:建议读者结合提供的代码和网盘资料,逐步理解模型构建逻辑,重点关注不确定性建模、目标函数设计及约束条件设置,并通过调整参数进行仿真测试,加深对售电公司运营策略的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值