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

    python串口收发数据

    = b'' : print("receive : ",data.decode("gbk")) 三、打开串口调试工具,接受和发送数据

    3.7K20发布于 2020-01-08
  • 来自专栏技术总结

    收发数据的原理(上)

    上一篇五分钟了解网络连接讲了网络连接的大概流程,并且文末讲到客户端委托协议栈收发数据可以总结为四步: 1、创建套接字(创建套接字阶段) 2、将管道连接到服务器端的套接字上(连接阶段) 3、收发数据 协议栈的上半部分有两块,分别是负责用TCP协议收发数据的部分和负责用UDP协议收发数据的部分,它们会接受应用程序的委托执行收发数据的操作。 双方通过通信规则进行信息交换从而完成数据收发准备。收发操作,需要一块临时存放要收发数据的内存空间,这块内存空间叫做缓冲区,它是在连接操作过程中分配的。 关于控制信息头部 控制信息可以分为两类。 TCP三次握手 1.A向B发起建立连接请求: 2.B收到A的发送信号,并且向A发送确认信息 3.A收到B的确认信号,并且向B发送确认信号 连接(准备)操作完成后,套接字可以随时进行收发数据了, 等到后面的收发数据操作。 在此,收发数据的创建套接字阶段、连接阶段已经讲完,剩下的通信阶段、断开阶段留到下次再讲。

    1.1K20发布于 2018-12-24
  • 来自专栏技术总结

    收发数据的原理(下)

    网络原理系列文章: 一、五分钟了解网络连接(已完成) 二、收发数据的原理(上)(已完成) 三、收发数据的原理(下)(已完成) 四、收发数据的番外篇(未完成) 因为网络原理不是三言两语可以讲完,如果读者很忙 在上篇我们已经讲了TCP收发数据的前两步,接下来是最后两步。 将HTTP消息传给协议栈 上篇讲到控制流程从 connect 回到应用程序之后,就到了数据收发阶段。 发送方和接收方在开始收发数据前需要告知对象序号初始值 通过seq序号和ACK号可以确认数据,我们前面只考虑了单向传输,但TCP数据收发是双向的,所以客户端向服务器发送数据,服务器也会向客户端发送。 接下来到收发操作工作,数据收发工作可以双向同时进行。客户端向服务器发送请求,序号也会跟随数据一起发送(④),服务器收到数据返回ACK号(⑤)。同理,服务器向客户端发送数据(⑥⑦)。 等待一段时间是为了防止误操作,引起误操作的原因很多,比如说: 1、客户端发送FIN 2、服务器返回ACK号 3、服务器发送FIN 4、客户端发送ACK号 如果最后客户端返回的ACK号丢失了,服务器没有接受到

    1.3K20发布于 2018-12-28
  • 异步方式串口收发数据

    本文将重点介绍如何在Windows平台上使用异步方式进行串口数据收发。1. 异步串口通信概述异步串口通信是指在数据传输过程中,发送方和接收方不需要严格的时钟同步,而是依赖于数据包的起始位和停止位来标识数据的开始和结束。这种方式适用于数据传输速率较低、传输距离较短的场景。2. 异步串口通信的特点异步串口通信具有以下特点:字符为单位:以字符为单位进行数据传输。起始位和停止位:每个字符的开始和结束由起始位和停止位标识。无外部时钟同步:发送方和接收方不需要外部时钟信号同步。 ReadFile和WriteFile:用于同步读取和写入串口数据。SetCommMask和WaitCommEvent:用于设置串口事件和等待事件。SetupComm:用于设置串口的输入输出缓冲区大小。 = ERROR_IO_PENDING) { // 读取失败处理}4.5 异步发送串口数据使用WriteFile函数进行异步发送时,同样需要提供一个OVERLAPPED结构体。

    5.1K00编辑于 2024-10-11
  • 来自专栏嵌入式随笔

    USB数据收发过程

    这些描述符其实就是一个个数据结构,对应程序里的几个结构体。表征USB的状态,在主机询问时,将自身的状态汇报给主机。比如: 主机:性别? 从机:男 主机:身高? 从机:180 ...... 从机回答的这些自身属性的就是那些描述符中的数据。 不考虑USB具体的协议的话,数据传输并不复杂,就是主机轮询各个从机数据,传输按照功能等分了四种,分别是控制传输,中断传输,同步传输,批量传输。 不同的USB设备使用各种传输进行数据收发。优先级按照如下方式进行传输。

    66810编辑于 2023-09-01
  • 同步方式串口收发数据

    本文将详细介绍如何在Windows平台下使用同步方式进行串口数据收发。1. 串口通信基础串口通信,也称为串行通信,是一种计算机硬件连接方式,允许计算机与其他设备进行数据交换。 在Windows中,串口通常以文件的形式存在,可以通过文件I/O操作来进行数据的读写。2. 同步串口通信同步串口通信意味着数据的发送和接收是在同一个线程中顺序执行的,发送或接收操作会阻塞当前线程,直到操作完成。这种方式简单易实现,但可能会影响程序的响应性。3. 同步读取串口数据同步读取串口数据可以使用ReadFile函数。这个函数会阻塞调用线程,直到读取到指定数量的数据或发生错误。DWORD bytesRead;CHAR Buffer[64];if (! 同步发送串口数据同步发送串口数据同样使用WriteFile函数。这个函数也会阻塞调用线程,直到所有数据被发送或发生错误。

    5K00编辑于 2024-10-11
  • 来自专栏goodcitizen

    使用脚本收发 protobuf 协议数据

    Scope: Global 其中 ipv6 地址240e:304:8183:2bcc:c16d:22d0:74ba:23e/64在两边都存在。 protobuf 上面的接口确实是基于二进制数据的协议,虽然是私有协议,但是采用了 protobuf 来进行规范,在提高性能的同时,也保留了一定的通用性。 json,下面用上一节的二进制数据做个练手,假设数据已经保存在名为 response.bin 的文件: > pbjs msg.proto --decode ProbeIpv6Response < response.bin jq 有了 json 数据就好办了,下面上 jq 提取设备 IP,假设已经将数据保存在了 response.json 文件中: > jq -r '.selfAddr.addrV6' probe_v6. json 240e:304:8183:2bcc:c16d:22d0:74ba:23e 和之前猜测的 IP 地址结果一致。

    97121编辑于 2023-08-26
  • 来自专栏python3

    【Python】简单的串口收发数据

    实现效果: Python端运行的时候打开COM3,然后准备从键盘获取数据,并发送,同时接收串口调试助手COM1发送过来的数据 Python端: ? 串口调试助手: ? 串口调试助手使用COM1,能显示Python端发过来的数据,当点击发送的时候,Python端暂时不会显示,因为Python端的读取键盘那个方法是堵塞的,当Python端发送的时候才同时把数据显示出来(如果想一发送就显示 1、安装pyserial(类似于java的库,用于调串口函数) 2、安装VSPD(因为没有硬件,用这个虚拟串口) 1、由于我用的是win7 64位,无法安装pyserial-2.7.win32.exe 右键计算机->属性->高级->环境变量->系统变量 在系统变量里找到PATH,双击PATH,在结尾加上 “;D:\Python27”(D:\Python27是你的Python安装目录,不要引号) (2) serial.Serial(serialPort,baudRate,timeout=0.5) print "参数设置:串口=%s ,波特率=%d"%(serialPort,baudRate) #收发数据

    5.7K30发布于 2020-01-06
  • WaitCommEvent、SetCommMask方式串口收发数据

    本文将详细介绍如何使用WaitCommEvent和SetCommMask函数进行异步串口数据收发。1. 异步串口通信概述异步串口通信允许数据在不阻塞当前线程的情况下进行发送和接收。 这种方式特别适合于数据传输速率较低、实时性要求不高的场景。在Windows中,可以通过WaitCommEvent和SetCommMask函数来实现异步串口通信。2. hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped);hFile参数是串口的句柄,lpEvtMask参数是一个指向DWORD的指针,用于接收发生的事件类型 异步读写串口数据在设置了事件掩码并等待事件后,你可以使用ReadFile和WriteFile函数进行异步读写操作。 例如,如果检测到EV_RXCHAR事件,你可以从串口读取数据;如果检测到EV_TXEMPTY事件,你可以继续发送下一批数据。6.

    4.9K00编辑于 2024-10-11
  • 来自专栏404

    使用 Paho.MQTT js 收发数据

    paho-mqtt"; var client: any = ""; const topicSendMsg: string = "safetyHat/data/"; // 安全帽采集(前端模拟定位数据上传 ) const topicReceiveMsg: string = "safetyHat/loc/#"; // 定位数据(前端接收定位数据) const topicAlarmMsg: string = 'fence/alarm'; // 围栏报警数据 const onMqttConnect = function (): void { console.log('onConnect

    2.2K10编辑于 2022-04-25
  • 来自专栏Linux内核那些事

    Linux 网卡数据收发过程分析

    一般来说,网卡主要有两个重要的功能:接收数据 和 发送数据。 所以,当网卡接收到数据包后,要通知 Linux 内核有数据需要处理。另外,网卡驱动应该提供让 Linux 内核把数据把发送出去的接口。 不过本文主要分析网卡设备收发数据的实现,所以不会分析 net_device 结构的所有成员。 下面主要列出收发数据相关的成员,如下: struct net_device { char name[IFNAMSIZ]; // 设备名字 ... = 0 && ++nr_serviced < MAX_SERVICE) { ... // (2) 如果中断类型为接收到数据包 = dev_alloc_skb(pkt_len + 2); // 申请一个数据包对象 if (skb) { skb_reserve(skb, 2

    2.9K30发布于 2021-04-08
  • 来自专栏python成长之路

    udp服务端收发数据流程

    2、绑定ip以及端口号,这样客户端才能找到这个程序。 3、因为本地网卡不止一个所以尽量不写死,一般用""空来表示所有本地网卡。 6、收到消息的时候,先确定客户端的编码形式是utf-8还是gbk,并且用同样的方式把字节码解码成能看懂的数据。 7、在进行回发的时候,要首先对要发送的数据进行编码,转换成对应的字节码发送。 9、在用线程,进程,进程池的时候可实现消息收发的并行,协程的时候可实现伪并行,原理就是方法之间切换。 10、协程可使用封装好的框架,greenlet以及gevent框架来操作。 (接收数据) socket_temp_serve_data = socket_serve.recvfrom(1024) # 数据解码 socket_serve_data = socket_temp_serve_data [0].decode('gbk') # 打印接受到的数据 print(socket_serve_data) # 用户输入数据并对客户端发送 socket_serve_sendto_temp_data

    1.2K80发布于 2018-05-29
  • 来自专栏liulun

    UDP广播的方式收发数据(C#)

    发送数据: ///

    /// 发送信息 /// /// <param name="sender"> Text); client.Send(buffer, buffer.Length, iep); client.Close(); } 接收数据

    1.5K20编辑于 2022-05-09
  • 来自专栏liulun

    通过UDP的组播方式收发数据

    System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace UDPTest2

    1.5K20编辑于 2022-05-09
  • 来自专栏python成长之路

    udp客户端收发数据流程

    2、这时服务端应该先启动,并在知道服务端的ip以及端口号的时候才能进行通讯。 5、这里还可以进行消息的接收,在这里接收消息首先得要发送数据到指定的服务端,告诉服务端客户端的ip以及所使用的端口是什么。 6、如果先进行消息阻塞是收不到消息的,这里客户端不需要绑定端口可以理解成在客户端把数据发送到服务端以后系统在后台默默地 把客户端ip以及端口和客户端绑定了起来。 7、接受到消息同样要进行解码,解码形式与服务端发送过来数据的编码格式相对应,把字节码转换成能看懂的数据进行打印。 8、最后进行客户端udp套接字关闭。 temp_data = input('客户端:') # 加上具体对象形成对话形式 temp_data = '客户端:' + temp_data # 对将要发送的数据进行编码

    2.6K40发布于 2018-05-29
  • 来自专栏Antony iOS Development

    iOS蓝牙开发如何更好地收发数据

    3月中旬跳槽了,一直在新公司「填坑」,看着「先人」写的代码,觉得是有改善空间的,所以这次想聊下这部分内容——iOS蓝牙开发中如何更好地更好地收发数据。 适读对象: 想初步了解iOS蓝牙开发的朋友(最好连计算机基础都没有,就像我这种没有计算机科班基础的伪程序猿(真文科汪)); 做过蓝牙开发,但是没有很「优雅」地收发数据的朋友(直接用C语言char数组装回来 如何更好地收发数据 好了,上面讲了一大堆,终于要和标题扯上点关系了。 其实这里有个坑,当单个数据的大小为2字节或以上时,我们用UInt16或UInt32去定义,会有「自动对齐」的问题,就是接到的数据,没有按指令定义的顺序对齐,导致数据不正确,这时候可以在struct后面加关键字 下面是Swift版本: // 定义指令 // MARK:- Device 2 Mobile // MARK:Response: 0x13 蓝牙模块返回数据 struct D2MDeviceParamResponse

    3.4K32发布于 2019-02-14
  • 来自专栏全栈程序员必看

    jrtplib收发实例

    默认编译的jrtplib是没有打开宏RTP_SUPPORT_THREAD 也就是在接收数据的时候,它不会自动的查询是否接收到数据,需要在应用程序中添加轮询函数:sess.Poll() ,持续60s,接收到数据之后,将接收到的数据通过标准输出打印出来。 ,然后以1s的周期发送数据。 这里是p2p传输,发送之前需要指定发送地址和发送端口。这里的地址就是接收端主机的IP地址,这里的目的端口,就是接收端程序设置的本地端口。 1234567890 1234567890 1234567890 1234567890 注意:在编译运行本程序之前,需要正确安装好jrtplib 工程代码可在这里下载:最简jrtplib 收发数据实例

    82631编辑于 2022-09-19
  • 来自专栏技术干货

    STM32F407-USART2+DMA空闲中断收发

    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init ); //解析接收到的数据 memset(g_dma_tx2_buff, 0,G_DMA_TX2_LEN ); memcpy(g_dma_tx2_buff,data_buf (USART2_RX_DMA_STREAM); //获得传输的数据个数 DMA_SetCurrDataCounter(USART2_RX_DMA_STREAM, G_DMA_RX2 _LEN); //解析接收到的数据 memcpy(g_dma_tx2_buff,g_dma_rx2_buff,lengh); g_tx2 _buff_len = lengh; //发送数据 Usart2DmaSend(g_dma_tx2_buff,g_tx2_buff_len);

    95610编辑于 2024-07-01
  • 来自专栏sktj

    python mail 收发

    ------------------------mailconfig.py popservername = 'pop.secureserver.net' popusername = 'PP4E@learning-python.com'

    1K40编辑于 2022-05-13
  • 【测试Solace收发

    案例分析 回归测试中模拟Solace消息中间件的收发,需要重点关注消息的完整性、顺序性和故障恢复能力。 测试案例设计示例: 正常消息收发:验证生产者发布消息到指定Topic/Queue,消费者能准确接收。 消息重试机制:模拟消费者ACK失败,验证消息重新投递。 JMeter:通过JMS插件模拟大规模消息收发

    19910编辑于 2025-12-17
领券