随笔分类 - 通讯协议和数据序列
通讯协议和数据序列
摘要:图片采用JSON格式传输的话,需要把图片转成Base64格式。首先把图片转成流:Image1.Picture.Graphic.SaveToStream(ss);然后编码成base64格式的:EncodeStream(ss, ss1);注意ss和ss1的定义:var ss: TMemoryStrea...
阅读全文
摘要:序列procedure TForm1.Button2Click(Sender: TObject);var msgpack: TQMsgPack;begin msgpack := TQMsgPack.Create; try msgpack.AsVariant := cds.Data; ...
阅读全文
摘要:TQJson是QDAC开源项目的JSON对象,其特点是跨平台,功能强大。序列procedure TForm2.Button2Click(Sender: TObject);var AJson: TQJson;begin AJson := TQJson.Create; try AJson.A...
阅读全文
摘要:不论将数据序列为何种数据格式(STRING,INTEGER,STREAM,OLEVARIANT。。。),最终SOCKET发送的都只能是BUFFER,也即TBYTES=ARRAY OF BYTE(字节数组),SOCKET发送的数据包都是字节数组,发送之前其它数据格式都要转换为TBYTE。数据包的大小,...
阅读全文
摘要:在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。生产者线程和消费者线程在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必...
阅读全文
摘要:// 定义结构体type TmyRec= record name:string[10]; password:string[10]; end;function RawToBytes(const AValue; const ASize: Integer): TBytes;begin S...
阅读全文
摘要:USE [TKPOS_WuJing]GO/****** Object: StoredProcedure [dbo].[sp_get_saleData] Script Date: 07/21/2014 11:20:54 ******/SET ANSI_NULLS ONGOSET QUOTED_...
阅读全文
摘要:单机软件,让人的感觉就只能在本地使用。单机版c/s软件,数据存放在本机上,老板想要查看销售报表的话,需要跑到公司的那台电脑上才能查看,这对于在外面四处跑业务的老板来说,基本上是不可能做到的。但每天的销售营业数据又是老板非看不可的。如何解决这个矛盾问题呢?单机版c/s软件能否可以让老板在异地查看营业报...
阅读全文
摘要:餐饮软件,特别是中厨的出品打印机数量非常多,整个酒店可能有N个出品部门,一个出品部门可能有N台出品打印机。 打印队列的功用: (1)打印不掉单,打印任务缓存于队列中,如果某个打印任务失败,则重新加入队列; (2)各台打印机都是并行作业,一台打印机发生故障不会影响其它打印机的正常工作。 打印队列实现方
阅读全文
摘要:// 单元功用:代理服务器协议// 单元设计:陈新光// 设计日期:2013-11-30// 单元说明:Status=0 成功;=1失败// 中间件和客户端节点以IP标识自己 unit untPackage; interface uses SysUtils; // 缓存定义type TChar10
阅读全文
摘要:对于通讯协议的封装来说,经常就是“拼字节”,“拼字节的位”。本篇通过汉字机内码的例子来说明DELPHI对字节是如何操作的。一个汉字占用2个字节的内存空间,也就是一个字,一个字=二个字节。“啊”字的汉字机内码则是B0A1H,那么DELPHI如何通过机内码来显示“啊”字呢?DELPHI的16进制数表示类...
阅读全文
摘要:// 移动短信接口(cmpp 2.0)//unit untYiDongInterface;interfaceusesSysUtils, untSocket, IdGlobal, MessageDigest_5, Types;const{$REGION 'Command_Id定义'}CMPP_CONNECT = $00000001; // 请求连接CMPP_CONNECT_RESP = $80000001; // 请求连接应答CMPP_TERMINATE = $00000002; // 终止连接CMPP_TERMINATE_RESP = $80000002; // 终止连接应答C
阅读全文
摘要:通過網絡傳輸對象之前,必須要對對象進行串行化(流化)處理,然後發送串行化的流。當接收方根據接收到的流還原對象出來。 function RecordsetToXML(const Recordset: _Recordset): string; var RS: Variant; Stream: TStri
阅读全文