cross socket和msgpack的数据序列和还原

procedure TForm1.Button1Click(Sender: TObject);
begin
var pack: TSimpleMsgPack := TSimpleMsgPack.Create;
pack.ForcePathObject('sql').AsString := '测试';
IdTCPClient1.IOHandler.Write(tidbytes(pack.EncodeToBytes)); //发送TBytes
end; procedure TcrossTcp.OnReceived(Sender: TObject; AConnection: ICrossConnection; ABuf: Pointer; ALen: Integer);
begin
var b: tbytes;
SetLength(b, ALen);
Move(ABuf^, b[0], ALen); // 还原TBytes
var pack: TSimpleMsgPack := TSimpleMsgPack.Create;
pack.DecodeFromBytes(b);
Writeln(pack.ForcePathObject('sql').AsString);
end; procedure TForm1.Button1Click(Sender: TObject);
begin
var pack: TSimpleMsgPack := TSimpleMsgPack.Create;
pack.ForcePathObject('sql').AsString := '测试';
var ms: TMemoryStream := TMemoryStream.Create;
pack.EncodeToStream(ms);
ms.Position := 0;
IdTCPClient1.IOHandler.Write(ms, ms.Size); //发送流
end; procedure TcrossTcp.OnReceived(Sender: TObject; AConnection: ICrossConnection; ABuf: Pointer; ALen: Integer);
begin
var ms: TMemoryStream := TMemoryStream.Create;
ms.Size := ALen;
ms.Write(ABuf^, ALen);//还原流
var pack: TSimpleMsgPack := TSimpleMsgPack.Create;
ms.Position := 0;
pack.DecodeFromStream(ms);
Writeln(pack.ForcePathObject('sql').AsString);
end;

  

cross socket和msgpack的数据序列和还原的更多相关文章

  1. msgpack的数据序列和还原

    msgpack的数据序列和还原 msgpack不仅可以序列一些常规的数据类型的数据,比如:string.datetime.integer...... 还能序列olevariant.stream 这就非 ...

  2. 优秀的数据序列和还原类----TSimpleMsgPack

    优秀的数据序列和还原类----TSimpleMsgPack TSimpleMsgPack是D10天地弦的作品. 优点:至简,就一个单元文件实现,不需要引用其他单元. 缺点:不是标准的MSGPACK实现 ...

  3. DATASNAP高效的FIREDAC数据序列和还原

    变量定义: varFDConnection: TFDConnection;qCustomers: TFDQuery; qOrders: TFDQuery;FDSchemaAdapter: TFDSch ...

  4. firedac的数据序列和还原单元(Data.FireDACJSONReflect.pas)之拷贝FIREDAC数据集

    使用流做中转 procedure CopyDataSet(const ASource, ADest: TFDAdaptedDataSet);var LStream: TStream;begin LSt ...

  5. 【网络编程】TCPIP_3_地址族与数据序列

    目录 前言 3. 地址族与数据序列 3.1 分配给套接字的 IP 地址与端口号 3.2 参数 IP 地址 3.2.1 IPV4 地址的结构体 3.2.2 地址族(Address Family) 3.2 ...

  6. 常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释)

    常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释) 一. 增 INSERT INTO 数据表(字段,字段,-) VALUES(值,值-); INSERT INTO emp(empno, ...

  7. Python socket ssh接收大数据

    通过socket连续接收返回数据 Server服务端 import socket,os server = socket.socket() server.bind(('localhost',9999)) ...

  8. Python Socket请求网站获取数据

     Python Socket请求网站获取数据 ---阻塞 I/O     ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...

  9. 论DELPHI三层的数据序列格式的变化

    论DELPHI三层的数据序列格式的变化 要窥三层的数据序列格式,我们可以通过观察DELPHI官方的客户端内存表. 早先流行的是TClientDataSet,它的Data和Delta属性的数据类型都是: ...

随机推荐

  1. Android NDK 学习之接受Java传入的Int数组

    本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...

  2. Elasticsearch7

    elasticsearch 由来 点击进入 elasticsearch 基本概念 点击进入 elasticsearch 安装 点击进入 elasticsearch 增删改查 点击进入 elastics ...

  3. FRDM-KL43开发板驱动段式液晶SLCD的实现方法

    LCD的驱动不像LED那样,加上电压(LED实际上是电流驱动)就可以长期显示的. LCD驱动必须使用交流电压驱动才能保持稳定的显示,如果在LCD上加上稳定的直流电压, 不但不能正常显示,时间久了还会损 ...

  4. Luogu P1276 校门外的树(增强版)

    Luogu P1276 校门外的树(增强版) 本来看着是道普及-,就不打算写博客了,结果因为出了3次错,调试了15min就还是决定写一下-- 本题坑点: 1.每个位置有三种情况:空穴,树苗,树(而不只 ...

  5. linux网络编程之posix消息队列

    在前面已经学习了System v相关的IPC,今天起学习posix相关的IPC,关于这两者的内容区别,简单回顾一下: 而今天先学习posix的消息队列,下面开始: 接下来则编写程序来创建一个posix ...

  6. P1363 幻象迷宫[搜索]

    题目描述 (喵星人LHX和WD同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫.) WD:呜呜,肿么办啊-- LHX:momo...我们一定能走出去的! WD:嗯,+U+U ...

  7. 本地python环境检查,插件检查及插件安装

    电脑windows键+r  输入cmd 在python命令模式下 pip list  --可以查看已安装的插件情况 或者用 pip freeze 也可以 卸载插件:pip uninstall *** ...

  8. async/await中reject的问题

    promise 返回的 resolve 对象可能用 await 去接,但是 reject 无法用 await 接收到,所以要用 try catch 去处理 例如发送邮件的接口设置: async fun ...

  9. 51 arm x86 的大小端记录

    51 是大端模式 arm的cortex m 默认小端,可以设置大端 x86是小端 大端模式:低位字节存在高地址上,高位字节存在低地址上  小端模式:高位字节存在高地址上,低位字节存在低地址上

  10. sql server 事务和锁的作用

    事务 事务就是作为一个逻辑工作单元的SQL语句,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点.为了确保要么执行,要么不执行,就可以使用事务.而锁是实现事务 ...