首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏开源519

    2个类轻松构建高效Socket通信

    2个类轻松构建高效Socket通信 引言   在接触Linux网络编程前,一直觉得网络编程充满了神秘与挑战,遥不可及。这种观念一度让我对网络编程望而却步。 概述   网上已经存在很多成熟的网络,重新造轮子有什么意义?总结下来主要有如下原因: 适应有限资源   成熟网络功能全面但体积较大,不适合嵌入式这种资源有限的环境。 基于学习目的   通过实现网络可以深入理解网络编程的原理和技术细节,提升个人技术能力。 便于维护和优化   自主开发的更容易根据项目需求进行调整、扩展或优化,并且能够更快的定位问题。 以上是实现Socket通用的原因,主要是希望结合实际项目总结一套成熟稳定的Socket通用代码,方便项目复用。 ④ 处理客户端通信 当接收到数据时,服务端会回显一条消息给客户端,并记录日志。

    20310编辑于 2025-02-27
  • 来自专栏北溟有鱼QAQ

    Linux进程通信之管道通信2

    随机进程管道通信(无血缘关系) 读进程 <? STDOUT,"pid=%d write len = %d \n",getmypid(),$len); } } fclose($fd); 验证 通过以上图片可以发现,我们实现了不同进程间的通信 上一篇: Linux进程通信之管道通信

    2.1K30发布于 2021-09-08
  • 来自专栏初见Linux

    2-2.进程通信-多线程

    2.进程通信的意义(为什么?): 并发进程之间的相互通信是实现多进程间协作和同步的常用工具。具有很强的实用性,进通信是操作系统内核层极为重要的部分。 二、进程通信方式(怎么做?) 共享存储区通信1.png (2)共享数据结构: 生产者-消费者问题,少量数据。 (3)共享存储区: Unix系统中通信速度最高的一种通信机制。 2.消息传递系统 在消息传递系统中,进程间的数据交换以消息为单位,在计算机网络中,消息又称为报文。程序员直接利用系统提供的一组通信命令(原语)来实现通信。 服务器方: (1) 首先服务器方要先启动,并根据请求提供相应服务; (2) 打开一通信通道并告知本地主机,它愿意在某一IP地址上接收客户请求;(3) 处于监听状态,等待客户请求到达该端口; (4) 客户方: (1) 打开一通信通道,并连接到服务器所在主机的特定端口; (2) 向服务器发服务请求报文,等待并接收应答;继续提出请求...... (3) 请求结束后关闭通信通道并终止。

    78120发布于 2020-08-05
  • 来自专栏笔记分享

    Vue2.组件通信

    通信组件解决方案 父子关系: props和$emit 非父子关系: provide和inject eventbus 通用解决方案:Vuex适合复杂业务场景。 父子通信 父组件通过props将数据传递给子组件 子组件利用$emit通知父组件修改更新 跟Qt的信号槽机制很像。

    77410编辑于 2024-01-16
  • Java串口通信技术探究2:RXTX单例测试及应用

    本文主要介绍了Java串口通信技术探究,重点分析了RXTX单例测试以及串口工具的使用。 一、创建串口工具类在开始之前,我们需要创建一个简单的Java项目来测试RXTX。使用Java IDE(例如:Eclipse、IntelliJ IDEA)创建一个新的Java项目。 在项目中添加RXTX的Maven依赖。 logger.info("关闭串口 " + serialPort.getName()); } } /** * 16进制字符串转十进制字节数组 * 这是常用的方法,如某些硬件的通信指令就是提供的 i * 2 + 2), 16).byteValue(); } return ret; } /** * 给串口设置监听 * * @param

    85300编辑于 2023-12-22
  • 来自专栏根究FPGA

    串口通信系列(二)、I2C通信方式

    一、I2C简介 IIC全称为Inter Integrated Circuit:两根通信线:一根时钟线SCL一根数据线SDA,只有一根数据线,所以是半双工通信。 首先,CLK_FREQ是系统的输入时钟频率,I2C_FREQ是设定的IIC通信时钟频率。要生成IIC_SCL这样一个时钟的话肯定要分频,分多少? ) >> 2'd2。 分析系统的控制信号输入: (1)、IIC_EXEC:IIC通信执行的触发信号 (2)、bit_ctrl:地址控制信号,是8bit还是16bit的地址 (3)、i2c_rh_wl:读写类型控制信号输入 ( : IIC的应答信号 0:应答 1:非应答 分析工作状态: 平时肯定是处于空闲状态——之后接收到IIC执行信号——要看是读取还是写入操作——与从机建立通信即发送从机地址——然后传输要读取或写入的地址

    4.5K10发布于 2020-06-30
  • 来自专栏Vegout

    P2P通信原理

    ip2:port2 从而与 ip1:port1 进行通信。 发出;外部只有收到过 ip2:port2 数据包的 ip3 才可以发送数据包给 ip2:port2 从而与 ip1:port1 进行通信。 ;外部只有收到过 ip2:port2 数据包的 ip3:port3 才可以发送数据包给 ip2:port2 从而与 ip1:port1 进行通信。 也就是说,P1 与服务器通信使用的 NAT 地址和 P2 与 P1 通信使用的 NAT 地址是不同的(一般情况都是端口不同)。甚至 P1 与服务器通信使用的 NAT 地址都在不断的发生变化。 这样让我们没办法拿到隐藏在 NAT 后边内网设备的 NAT 入口,也就没办法进行 P2P 通信了。 P2P 也用到了一个服务器,跟微信一样。

    5.4K10发布于 2020-05-07
  • 来自专栏胡飞洋的Android进阶

    进程间通信的方式(2

    这里先介绍使用AIDL 来进行进程间通信的流程,分为服务端和客户端两个方面。 2、下面继续《艺术探索》中关于AIDL的进阶知识: 1)进程间的Listener 假设有一种需求:用户不想时不时地去查询图书列表了,太累了,于是,他去问图书馆,“当有新书时能不能把书的信息告诉我呢?”。 主要是两方面: 1、客户端要注册IOnNewBookArrivedListener到远程的服务器,这样当有新书时服务端才能通知客户端,同时在我们的Activity的onDestory方法里面去取消绑定; 22)RemoteCallbackList 如果你以为AIDL就这样结束了,那你就错了,AIDL远不止这么简单,目前我们还有一些难点还没有涉及。 2、由于服务端的方法本身就运行在服务端的Binder线程池中,所以服务端方法本身就可以执行大量耗时操作,这个时候切记不要在服务端方法中开线程执行异步任务,除非你明确知道自己在干什么,否则不建议这么做。

    1.5K10发布于 2020-07-23
  • 来自专栏数据云团

    并发篇-python并发通信-2

    死锁是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

    85220发布于 2019-07-18
  • 来自专栏嵌入式开发圈

    浅谈总线通信机制(通信基础+串口+I2C)

    (1)按系统总线传输信息的方式可以分为以下三种: 1、数据总线 2、地址总线 3、控制总线 (2)按照总线的使用范围又可以分为很多很多种: 比如串口通信,计算机外设通信,网络通信等等。 数据通信的种类有:串行通信、并行通信。不管是什么类型的通信,再怎么复杂的,也是在这两种上面衍生出来的。 数据通信的传输方向又有:单工、半双工、全双工。 接下来,我们来说说I2C协议,I2C协议是什么鬼?I2C是(Inter-Integrated Circuit)的英文缩写,是Philips公司开发的一个通信协议,只有两根线是用来通信的。 上拉电阻取值要取什么值,这个电阻取大取小对I2C通信的时候有什么影响,应该取什么值最合适?既然有上拉电阻,那是不是有下拉电阻? 为什么我看有些I2C的外设接在MCU的IO口里,也没有看见接上拉电阻啊,那为什么通信也正常?

    3.3K12发布于 2019-07-04
  • 来自专栏科控自动化

    博途 通信应用 LCom

    在自动化领域,基于工业以太网通信中的TCP协议,通常设计用来实现安全地,对时间要求不严格(> 25 ms)和多系统通信。 标准的应用机制可以用于包含来自不同系统系列的设备的网络。 LCom在两个设备之间的以双向(全双工)的方式来实现点对点的连接。 该功能块可用于标准TCP通信。TCP标准的广泛应用允许在两个不同的设备之间实现数据交换。 由于TCP的功能范围不足以用于许多应用程序,因此LCom定义了单独的传输协议(LCom协议)。如果通信伙伴也支持LCom协议,则可以激活LCom协议。如果没有,则可以使用本地TCP通信。 (循环通信,单数据更改或一次性传输) · 通过生命周期信号的循环传输来监视连接(对连接失败的情况有更快速的响应时间)。在纯TCP通信的情况下,这通常在几秒钟的范围内完成。 · 两个通信对象都可以启动和停止两个传输方向上的数据传输。

    1K10编辑于 2022-03-29
  • 来自专栏全栈程序员必看

    i2c总线的通信协议(i2c通信协议原理)

    简介 I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。 在I2C的基础上,1995年Intel提出了“System Management Bus” (SMBus),用于低速设备通信,SMBus 把时钟频率限制在10kHz~100kHz,但I2C可以支持0kHz 和SPI不同的是,I2C可以支持mul-master系统,允许有多个master并且每个master都可以与所有的slaves通信(master之间不可通过I2C通信,并且每个master只能轮流使用I2C I2C支持双向数据交换,由于仅有一根数据线,故通信是半双工的。 硬件复杂度也位于串口和SPI之间,而软件实现可以相当简单。 在整个通信期间,可以存在多个start来开启每一次新的通信序列(communication sequence),而无需先放弃总线的控制权,后面会讲到这种机制。

    2.6K10编辑于 2022-07-29
  • 来自专栏九彩拼盘的叨叨叨

    Vue2 组件通信写法总结

    组件通讯包括:父子组件间的通信和兄弟组件间的通信。具体有以下几种情况。 父组件传递数据给子组件 父组件使用 Prop 传递数据给子组件。 <child-component :prop1="父组件的数据1" :prop2="父组件的数据2"></child-component> 子组件只接收在子组件定义的 props的值。 div>{{prop1 + prop2}}

    ', ... } 父组件调用子组件属性或方法 给要调用的子组件起个名字。 兄弟组件间通信 方法1: 用事件的发布订阅来做。 var bus = new Vue() // 组件 A 中触发事件 bus. $on('id-selected', function (id) { // ... }) 方法2: 用 vuex 来做兄弟组件间的通信。 不推荐的方式:兄弟组件通过父组件来通信

    45320发布于 2018-08-24
  • 来自专栏DevOps

    C++进程间通信 详解2

    现今常用的进程间通信方式有: 1)管道 (使用最简单) 2)信号 (开销最小) 3)共享映射区 (无血缘关系) 4)本地套接字 (最稳定) 进程间通信方法介绍 1. 2) 由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。 3) 只能在有公共祖先的进程间使用管道。 常见的通信方式有,单工通信、半双工通信、全双工通信。 (2) 管道未满,write将数据写入,并返回实际写入的字节数。 练习1:使用管道实现父子进程间通信,完成:ls | wc -l。假定父进程实现ls,子进程实现wc? 实现父进程ls 子进程wc -l 父子进程实现ps aux | grep bash 练习2:使用管道实现兄弟进程间通信。 兄:ls 弟: wc -l 父:等待回收子进程? 打开的文件 2. mmap建立的映射区(但必须要使用MAP_SHARED) 12. 匿名映射 通过使用我们发现,使用映射区来完成文件读写操作十分方便,父子进程间通信也较容易。

    1.5K10编辑于 2024-03-29
  • 来自专栏书山有路勤为径

    2.ROS基础-ROS通信编程

    spinOnce(); // 按照循环频率延时 loop_rate.sleep(); ++count; } return 0; } 程序逻辑: 1.头文件 2. 1000, chatterCallback); // 循环等待回调函数 ros::spin(); return 0; } 如何编译代码 设置需要编译的代码和生成的可执行文件 设置链接; talker.cpp) //其中 src/talker.cpp 表示生成可执行文件所需要的文件 target_link_libraries(talker ${catkin_LIBRARIES}) //链接 比如想创建如下话题消息 # Person.msg string name uint8 sex uint8 age uint8 unknow = 0 uint8 male = 1 unit female = 2 动作编程 什么是动作(action) 一种问答通信机制 带有连续反馈 可以在任务过程中止运行 基于ROS的消息机制实现 Action的接口 goal :发布任务目标 cancel:请求取消任务 status

    1.8K40发布于 2019-03-15
  • 来自专栏全栈之路

    vue与struct2通信

    注意最后返回的数据格式是:"success_jsonpCallback(<json字符串>)"

    91310发布于 2018-10-19
  • 来自专栏c#学习笔记

    C#串口通信2自动连接

    这次我们来说说怎么去实现制动连接串口(当你把设备连上来之后,怎么去让软件自动去识别是否为目标设备,当然这需要上位机与下位机共同完成,这里我们只讨论上位机部分) 先上协议: 帧头(3)+设备号(1)+指令类型(2) +数据长度(2)+载荷+CRC(2) 需要在下位机上实现的部分: 接收到一帧数据(帧头为53 5A 59,设备号01,类型为02,载荷无)53 59 A2 01 02 00 00 00 CRC后,会返回 SPort.PortName = portName; SPort.Open(); SPort.DiscardOutBuffer(); byte[] bytSend = new byte[] { 0x53, 0x59, 0xA2, SPort.Open(); SPort.DiscardOutBuffer(); byte[] bytSend = new byte[] { 0x53, 0x59, 0xA2,

    1.3K31发布于 2021-03-12
  • 来自专栏iot-me

    I2C通信协议

    简介 I2C通信协议(Inter-Integrated Circuit)是由Philips公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,现在被广泛地用于系统内多个集成电路 (I2C)间的通信。 物理层 支持多主机从机,如下图总线上挂载了多个i2c设备,通过指定地址选择操作的设备。 当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。 (OD门可实现线与功能) 具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C设备尚不支持高 速模式

    69920编辑于 2022-02-11
  • 来自专栏初见Linux

    2.数据通信(二)

    一、数据通信方式(考概念) 1.根据信号类型分类: (1)模拟通信: 利用正弦波的幅度、频率或相位的变化,来模拟原始信号,以达到通信的目的。 (AM,FM,PM) (2)数字通信: 用数字信号作为载体来传输消息,或用数字信号对载波进行数字调制后再传输的通信方式(ASK,FSK,PSK等)。 2.根据一次传输的数据位数分类: (1)串行通信: 指使用一条数据线将数据一位一位地依次传输,每一位数据占一个固定的时间长度。 如 RS232 ,USB 等。 (2)并行通信: 一组数据的各个数据位在多条线上同时被传输,磁盘的接口,打印机接口。 3.根据通信方向分类: (1)单工: 发送方和接收方只能是固定的一个方向,由A→B。 在两个或多个数据终端之间建立数据通信的暂时互连通路的技术。

    1.2K20发布于 2020-08-05
  • 来自专栏行走的机械人

    通信专栏】STM32单片机I2C通信(上篇)

    本文使用STM32FI03RCT6型号的单片机, 基于正点原子的函数进行总结讲解 想来单片机这块儿除了USART串口通信外,常见的便是I2C通信了,因为I2C通信 硬件连接简单,可扩展性强,但是这种硬件连线的简洁 I2C通信是一种半双工通信,也就是可以双向传输数据但不能同时进行。 STM32单片机是可以进行硬件I2C通信或者软件模拟进行I2C通信的,硬件I2C通信只需要对I2C引脚以及通信模式这两个结构体进行初始化即可,但I2C硬件通信由于硬件原因并不稳定(原子哥说的),不过在STM32F4 ---- 下面我们基于软件I2C模拟进行说明。 I2C通信物理层原理 1:二线传输:I2C通信除了地线GND和电源线VCC外,只需要两条线,一条双向串行数据线(SDA),一条时钟线(SCL)。 如何结合I2C时序编写对某外设的读写操作 这些内容我们在"STM32单片机/I2C通信(下篇)"进行介绍。

    2.4K20发布于 2020-06-04
  • 领券