UDS-下载示例解读

本文详细解析了一种通讯协议,涉及0x34服务的下载请求、0x36服务的数据传输以及0x37服务的退出传输请求。在下载过程中,客户端首先发送包含内存地址和大小的请求,服务器响应确认并指定最大传输块长度。随后,客户端通过0x36服务分块传输数据,服务器以0x76服务回应确认。最后,客户端使用0x37服务退出数据传输,服务器返回确认响应。
摘要由CSDN通过智能技术生成

1、下载示例主要涉及到 0x34(请求下载) 、0x36(数据传输) 0x37(退出数据传输请求)三个服务。

2、示例说明

Message directionclient → server
Message TypeRequest
A_Data byteDescription Byte Value备注
#1RequestDownload Request SID0x3434服务
#2dataFormatIdentifier0x11

0x11(高半字节1需要压缩法

低半字节1需要加密法)

#3addressAndLengthFormatIdentifier0x33

0x33(高半字节3代表内存大小长度3个字节长度;

低半字节长度3代表内存地址长度)

#4
#5
#6
memoryAddress [ byte#1 ] (MSB)
memoryAddress [ byte#2 ]
memoryAddress [ byte#3 ] (LSB)
0x600x602000这3个字节达标内存地址(起始地址),地址为
0x20
0x00
#7
#8
#9
MemorySize [ byte#1 ] (MSB)
MemorySize [ byte#2 ]
MemorySize [ byte#3 ] (LSB)
0x000x00FFFF这3个字节达标内存大小,内存大小为65535个字节
0xFF
0xFF
Message directionserver → client
Message TypeResponse
A_Data byteDescription Byte Value备注
#1RequestDownload Response SID0x7434服务的肯定响应
#2LengthFormatIdentifier0x20

0x20(高半字节2指maxNumberOfBlockLength的长度为2个字节)

#3
#4
maxNumberOfBlockLength [ byte#1 ] (MSB)
maxNumberOfBlockLength [ byte#2 ] (LSB)
0x000x81代表BlockLength最大长度为129个字节
0x81
Message directionclient → server
Message TypeRequest
A_Data byteDescription Byte Value备注
#1RequestDownload Request SID0x3636服务
#2blockSequenceCounter0x01

0x01代表block1

#3

#129

transferRequestParameterRecord [ transferRequestParameter#1 ] =
dataByte#3

:

transferRequestParameterRecord [ transferRequestParameter#127 ] =
dataByte#129

0xXX

:

0xXX

发送的127个字节(由于74规定最大字节长度为129个字节,除去36 服务和blockSequenceCounter各一个字节,因此一块最多发送127个字节)

Message directionserver → client
Message TypeResponse
A_Data byteDescription Byte Value备注
#1TransferData Response SID0x7636服务的肯定响应
#2blockSequenceCounter0x01

0x11(高半字节1需要压缩法

低半字节1需要加密法)

.

.

.

Message directionclient → server
Message TypeRequest
A_Data byteDescription Byte Value备注
#1RequestTransferExit Request SID0x3737服务退出传输数据请求
Message directionserver → client
Message TypeResponse
A_Data byteDescription Byte Value备注
#1RequestTransferExit Response SID0x7737服务肯定响应
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uds-server是一种基于Unix域套接字的服务器,用于实现进程间通信。Unix域套接字是一种在同一台主机上的进程间进行通信的机制,相比于网络套接字具有更高的效率和安全性。 uds-server可以充当服务器角色,接收客户端的连接请求,并处理客户端发来的数据。它可以用于实现各种不同的功能,例如文件传输、共享内存、管道等。通过uds-server,不同的进程可以在同一台机器上进行有效的数据交换,提高了程序的灵活性和性能。 uds-server的工作方式包括以下几个步骤。首先,uds-server需要创建一个Unix域套接字,以便客户端可以通过该套接字与之建立连接。然后,uds-server会监听该套接字,等待客户端的连接请求。一旦有客户端请求连接,uds-server就会接受该连接,并创建一个新的套接字,用于与该客户端进行通信。 接下来,uds-server可以根据具体的需求,对客户端发送过来的数据进行处理。例如,可以将客户端发送的数据写入文件,或者进行一些计算操作。在完成后,uds-server可以将处理结果发送给客户端。 uds-server的优点在于它能够在同一台主机上进行进程间通信,不需要经过网络传输,因此速度更快、效率更高。另外,由于使用Unix域套接字进行通信,所以通信过程更加安全可靠。 总而言之,uds-server是一种基于Unix域套接字的服务器,可以在同一台主机上实现进程间的高效通信。它的应用范围广泛,可以满足不同的需求,并提供更快速和安全的数据交换解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值