【linux】Linux学习总结-套接字

Linux IPC:套接字(socket)学习小结(一) Linux IPC:套接字(socket)学习小结(一)Unix系统提供的很多经典进程间通信机制(IPC)如Pipe、消息队列、共享内存等都是面向同一台计算机上运行的进程(相关进程)之间,所以套接字(socket)存在便是为了允许在不相关的进程(或是不同主机)间创建类似管道的连接。在《Unix/Linux编程实践教程》中将socket通信比喻为打电话查询时间服务的过程,我觉得甚为形象,所以这里也借用了这个类比。 阅读详情

BSD套接字接口


L i n u x支持多种套接字类型。套接字类型,是指创建套接字的应用程序所希望的通信服务

类型。同一协议族可能提供多种服务类型,比如T C P / I P协议族提供的虚电路与数据报就是两

种不同的通信服务类型, Linux BSD支持如下几种套接字类型:

• Stream 提供可靠的面向连接传输的数据流,保证数据传输过程中无丢失、无损坏和无
冗余。I N E T地址族中的T C P协议支持该套接字。
• Datagram 提供数据的双向传输,但不保证消息( m e s s a g e )的准确到达,即使消息能够到
达,也无法保证其顺序性,并可能有冗余或损坏。I N E T地址族中的U D P协议支持该套
接字。
• Raw 是低于传输层的低级协议或物理网络提供的套接字类型,比如通过分析为以太网
设备所创建的R a w套接字,可看到裸I P数据流。
• Reliable Delivered Messages 类似于D a t a g r a m套接字,但它可以保证数据的正确到达。
• Sequenced Packets 类似于S t r e a m套接字,但它的报文大小是可变的。
• Packet 这是L i n u x对标准B S D套接字类型的扩展,它允许应用程序在设备层直接访问报
文数据。


INET的套接字层


I N E T套接字( s o c k e t )层支持包括T C P / I P协议在内的I N E T地址族( Address Family),如前所
述,这是一些分层协议,下层协议为上层协议提供服务。L i n u x中实现T C P / I P协议的代码与数
据结构充分体现了这种协议分层。I N E T套接字层接口是通过一组I N E T地址族套接字操作实现
的,这些操作在网络初始化时被注册到了B S D套接字层,与其他注册的地址族一起保存在
p o p s向量中。B S D套接字层通过调用注册在INET proto_ops数据结构中的I N E T套接字层例程
来完成上述操作。在进行每一项操作时, B S D套接字层都要把代表B S D套接字的数据结构传
给I N E T层,I N E T套接字层并非简单地抽取B S D套接字中的特定T C P / I P信息,而是使用自己的
s o c k数据结构,该数据结构已被链接到BSD socket数据结构上了,在图1 - 8 - 5中给出了这种链
接,这种链接通过BSD socket中的d a t a (数据)指针将s o c k数据结构链到了BSD socket数据结构
上。这样以来,随后的I N E T套接字调用将会很容易的得到套接字数据结构。在创建套接字时,
也建立了指向套接字数据结构的协议操作的指针,这些指针与所使用的协议有关:当使用T C P时,

它们将指向与建立T C P连接有关的一组T C P协议的操作。

linux程序设计,消息队列,套接字以及QT的GUI编程学习 时间一晃有过去了一周,虽然感觉这一周又遇到了不少杂事,但是确实还是学习了不少东西。回过头一看发现已经刷完了《linux程序设计》这本书了。 首先还是来总结回顾一下这一周所学习到了内容吧。 第十四章:信号量、共享内存和消息队列 首先这里使用的信号量与线程间通信使用的信号量略有不同,之前学习的信号量是相对简单的,使用sem_wait(sem_t *sem) 与sem_post(sem_t 阅读详情

相关推荐

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

Linux 下 套接字 Socket 通信原理和实践,附有详细案例

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下: 1、网络中进程之间如何通信? 2、Socket是什么?

elfprincexu的专栏 3988

Codesys—Modbus RTU称重变送器通讯案例

Codesys控制器使用标准的Modbus库,与支持ModbusRTU的称重变送器进行通讯的案例

原来你也__的博客 2739

【计算机网络】Linux环境中的网络套接字编程

本编文章是博主学习了网络套接字编程后对相关知识的总结,阅读本文可对网络编程有基本的了解。文章内容包括认识IP地址和端口号的作用、了解网络字节序等网络编程中的基本概念、掌握Socket API的基本用法,从而能够实现简单的UDP客户端/服务器和TCP客户端/服务器,并且理解TCP服务器建立连接、发送数据、断开连接的基本流程。

qq_61635026的博客 2299

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型?

本文详细介绍了如何利用NVIDIA DGX Spark在桌面端轻松运行200B参数大模型。通过实战演示,从系统初始化、模型获取部署到内存管理与性能调优,重点解析了其统一内存架构如何解决本地推理的显存瓶颈,并探讨了进行轻量化微调(如LoRA)的可能性,为AI开发者和研究团队提供了高效的本地化大模型操作方案。

weixin_29054195的博客 882

ComfyUI全自动换装工作流:从零到一的实战指南

本文提供了一份详细的ComfyUI全自动换装工作流实战指南。从环境配置、模型准备到核心工作流架构的逐步拆解,手把手教你搭建一条高效的AI换装流水线。文章深入解析了从输入、预处理、融合到输出的四步核心逻辑,并分享了关键参数调优与进阶技巧,旨在帮助电商从业者、内容创作者及AI爱好者轻松实现高质量、高效率的“一键换装”。

weixin_29198045的博客 895

【Linux】套接字编程

创建socket的过程(socket()),本质是打开文件。(仅有系统相关的内容)2.bind(),struct sockaddr_in -> ip,port,本质是ip+port和文件信息进行关联listen(),本质是设置该socket文件的状态,允许别人来连接我accpet(),获取新链接到应用层,是以fd为代表的;所谓的连接,在OS层面,本质其实就是一个描述连接的结构体(文件)read/write,本质就是进行网络通信,对于用户来讲就相当于在进行正常的文件读写。

Edward_Asia的博客 3250

Spark中Application、Job、Stage和Task区别详解

在Spark中,有一些关键的概念,如Application、Job、Stage和Task,它们描述了Spark作业的不同层次和组成部分。下面我将详细介绍每个概念,并通过示例说明它们之间的区别。

优快云 精品推荐 901

linux socket 编程总结

#include #include int socket(int domain, int type, int protocol); domain参数 可指定的协议族 域 说明 AF_UNIX UINX域协议(文件系统套接字) AF_INET ARPA因特网协议(UNIX套接字) AF_ISO ISO标准协议 A

SuperJack的道路 720

【Bug已解决】This model‘s maximum context length is X tokens. However, you requested Y tokens 解决方案

summary_prompt = "请将以下对话历史压缩成一段简洁摘要,保留关键决策和结论:\n" + format_messages(old_part)return [{"role": "system", "content": f"此前对话摘要:{summary}"}] + recent_part这种方式能在大幅降低 token 消耗的同时,尽量保留任务推进所需的关键上下文,是目前业内做长会话 Agent 最常见的处理方式之一。方案适用场景推荐指数滑动窗口裁剪短任务,对早期历史依赖不强⭐⭐⭐。

一键难忘的博客 1万+

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1669

Linux套接字学习笔记

TCP/UDP对比:1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前要建立连接2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,,无差错,不天失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流:UDP是面向报文的UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

2301_79612995的博客 829

一文吃透 SAP HANA SDA:把分散数据当作本地数据来用的那把钥匙

摘要:SAP HANA SDA(Smart Data Access)技术详解:150字精要 SAP HANA SDA是一种数据虚拟化技术,允许在不复制数据的情况下访问远端数据源。核心功能包括: 通过Remote Source定义连接配置 创建Virtual Table作为本地代理 支持谓词下推优化查询性能 与SDI技术协同工作扩展数据集成能力 典型应用场景包括: 跨系统联邦查询 冷热数据分层管理 混合云数据整合 远程表复制(RTR)实现近实时数据同步 实施要点: 需关注适配器能力差异 合理运用查询下推优化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 318

Linux套接字通信学习

套接字对应程序猿来说就是一套**网络通信的接口**,使用这套接口就可以完成网络通信。

qq_43424630的博客 975

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【linux】套接字学习

addrlen参数是一个输入输出型参数,传入的是调用者提供的缓冲区addr的长度,避免缓冲区的溢出问题;是一个通用指针类型,addr参数实际上可以接受多种协议的sockaddr结构体,而他们的长度各不相同,所以需要第三个参数addrlen来指定结构体的长度。常见的套接字有域间套接字,原始套接字,网络套接字等。针对不同的应同场景选用不同的套接字,对应的需要不同的套接字接口,但是Linux将这些接口做了统一。addr是一个输出型参数,传出客户端就的地址和端口号,如果addr参数为空,表示不关心客户端的地址。

阿顺的学习记录。 965

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Linux原始套接字学习总结

 Linux网络编程:原始套接字的魔力【上】 http://blog.chinaunix.net/uid-23069658-id-3280895.html 基于原始套接字编程        在开发面向连接的TCP和面向无连接的UD...

weixin_42017225的博客 653

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【转载】Linux下套接字学习

感觉这个系列还不错,学习一下。 先看的是第三篇: http://blog.youkuaiyun.com/gatieme/article/details/46334337 《 Linux下套接字详解(三)----几种套接字I/O模型》   POSIX关于同步和异步IO的描述: A synchronous I/O operation causes the requesting process to be bloc...

weixin_34413103的博客 147

linux系统编程——套接字相关API学习

socket(协议方案,数据流/快形式,附加协议)函数介绍: #include<sys/types.h> #include<sys/socket.h> int socket(int domain, int type, int protocol);//设置网络协议创建一个句柄,成功调用返回套接字描述符,失败返回错误码 domain参数指明所使用的协议族,通常为AF_INET,表示互联网协议族(TCP/IP协议族);通信协议族在文件sys/socket.h中定义。 AF_INE

qq_45652092的博客 435

Linux网络学习_socket套接字

套接字 概念 Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段。 Linux中的网络编程通过Socket接口实现,Socket即是一种特殊的IO,提供对应的文件描述符。 一个完整的Socket都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口}(五元组); 每一个Socket有一个本地的唯一Socket,由操作系统分配。 创建Socket #include <sys/types.h&

weixin_44342705的博客 216

Linux学习笔记30——套接字

一 什么是套接字   套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发既可以在本地单机上进行,也可以跨网络进行。 二 套接字属性  套接字的特性由3个属性确定,它们是:域,类型和协议   1 套接字的域     域指定套接字通信中的网络介质,最常见的套接字域是AF_INET,它指的是Internet网络,其底层的协议——网际(IP)只有一个地址族,它使用一种特定的方式来指定网络中...

weixin_30338461的博客 115

Linux系统学习笔记:套接字

Linux系统学习笔记:套接字   Unix/Linux   Yeolar   2012-05-18 14:22 主题: Linux系统学习笔记 « Linux系统学习笔记:进程间通信 上一篇总结了Linux中的一些经典的进程间通信的机制,本篇总结使用套接字的进程间通信的方法。套接字的优势在于它采用同样的接口来处理计算机内和不同计算机间的通信,通常它用于网络进程

klarclm的专栏 2167

【Linux学习笔记58】套接字的属性

引言 套接字与文件描述符一样,都拥有很多特性,那么本篇笔记主要记录一些套接字的属性以及设置。 套接字的属性 名称 属性 SO_BROADCAST 允许发送广播数据 SO_DEBUG 允许调试 SO_DONTROUTE 不查找路由 SO_ERROR 获得套接字错误 SO_KEEPALIVE 保持连接 SO_LINGER 延迟关闭连接 SO_OOBINLINE ...

RayCongLiang的博客 1160

C++学习之LINUX网络编程-套接字通信基础

C++学习之LINUX网络编程-套接字通信基础

qq_27302885的博客 892

linux学习笔记之套接字

一、基础知识。 1:套接字基础。   1,是通信端点的抽象。   2,在UNIX类系统中被当作是一种文件描述符。   3,套接字通信域。 域 描述 AF_INET IPV4因特网域 AF_INET6 IPV6因特网域 AF_UNIX UNIX域 AF_UPSPEC 未指定   4,套接字类型。 ...

weixin_30333885的博客 92
上一篇: 【转】苹果计划推出原创视频内容
下一篇: 【TV】智能电视机四大操作系统介绍
datamining2005
博客等级 码龄20年 400粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值