把 TBytes 转换为十六进制字符串
function BytestoHexString(ABytes: TBytes; len: Integer): AnsiString;
begin
SetLength(Result, len*);
BinToHex(@ABytes[], PAnsiChar(Result), len);
end;
例子:
客户端:
IdTCPClient1: TIdTCPClient;
Button1: TButton;
mmo1: TMemo;
procedure TForm4.Button1Click(Sender: TObject);
var
b:TBytes;
Len:Integer;
str:string;
begin
IdTCPClient1.Host:= '127.0.0.1';
IdTCPClient1.Port:= 8090;
if not IdTCPClient1.Connected then
IdTCPClient1.Connect;
if IdTCPClient1.Connected then
begin
IdTCPClient1.IOHandler.WriteLn('QUERYDATA');
mmo1.Lines.Add('向服务器发送:QUERYDATA') ;
try
IdTCPClient1.IOHandler.CheckForDataOnSource(250);//等待
Len:= IdTCPClient1.IOHandler.InputBuffer.Size;
IdTCPClient1.IOHandler.ReadBytes(b,len,false);
mmo1.Lines.Add('接收到:' +BytestoHexString(b,length(b)));
finally
IdTCPClient1.Disconnect;
end;
end;
end;
服务端
IdTCPServer1: TIdTCPServer;
Button1: TButton;
Memo1: TMemo;
procedure TForm4.Button1Click(Sender: TObject);
begin
if IdTCPServer1.Active then
IdTCPServer1.Active:= False;
IdTCPServer1.Bindings.Clear;
with IdTCPServer1.Bindings.Add do
begin
ip:= '0.0.0.0';
Port:= 8090;
end;
IdTCPServer1.DefaultPort:= 8090;
IdTCPServer1.Active:= True;
Memo1.Lines.Add('服务器监听已启动!')
end;
procedure TForm4.IdTCPServer1Execute(AContext: TIdContext);
var
Cmd:string;
b:TBytes;
begin
if not AContext.Connection.IOHandler.Connected then
begin
Exit;
end;
try
Cmd:= AContext.Connection.IOHandler.ReadLn;
Memo1.Lines.Add('接收到数据:'+Cmd);
if Cmd = 'QUERYDATA' then
begin
setlength(b,2);
b[0]:= 1;
b[1]:= 2;
AContext.Connection.IOHandler.Write(b);
Memo1.Lines.Add('发送:'+BytestoHexString(b,Length(b)));
end;
except
Exit;
end;
end;
把 TBytes 转换为十六进制字符串的更多相关文章
- 不使用C库函数(Sprintf)将void* 指针转换为十六进制字符串
#include <stdio.h> #include <stdint.h> #include <stdlib.h> void hexDump(void *ptr, ...
- 中文字符串转换为十六进制Unicode编码字符串
package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Uni ...
- ios十进制、十六进制字符串,byte,data等之间的转换
十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:@"%@& ...
- jquery如何将获取的颜色值转换为十六进制形式
jquery如何将获取的颜色值转换为十六进制形式:大家或许已经注意到了,在谷歌.火狐和IE8以上浏览器中,获取的颜色值是RGB形式,例如rgb(255,255,0),感觉非常不适应,或者在实际编码中不 ...
- php urlencode函数 (中文字符转换为十六进制)
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%. urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其 ...
- iOS -- 十进制、十六进制字符串,byte,data等之间的转换
十进制->十六进制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:]]]; 十六进制-& ...
- Java byte和hex十六进制字符串转换
在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字 ...
- 字符串、bute[]数组和十六进制字符串的相互转换
1.字符串转换成十六进制字符串 public static String str2HexStr(String str) { if (EncodingUtil.isEmpty(str)) { retur ...
- iOS 4s-6Plus屏幕自动适配及颜色转换为十六进制
iOS各种屏幕自动适配及颜色转换为十六进制 ★★★XLJMatchScreen自动适配屏幕★★★ 支持pod导入 pod 'XLJScreenMatching', '~> 1.0.3' 如果发现 ...
随机推荐
- CF 628B New Skateboard --- 水题
CD 628B 题目大意:给定一个数字(<=3*10^5),判断其能被4整除的连续子串有多少个 解题思路:注意一个整除4的性质: 若bc能被4整除,则a1a2a3a4...anbc也一定能被4整 ...
- python built-in delattr()
delattr(object,name) 使用此函数必须保证name是可以被删除,即先调用setattr(object,name,value) name必须是字符串并且是object的属性. 函数的作 ...
- 线下线上对接的一种思路(本地erp与线上电子商务平台对接)
目前很多公司都希望本地的ERP能够与线上的电子商务平台进行对接. 但是很多的线下ERP系统商不愿意修改代码来做相应的对接,或者觉得太话费成本. 而对于企业本身,又会有很多的特殊需求. 下面略述一家进口 ...
- ADF_Desktop Integration系列1_ADF桌面集成入门之设定Development Environment
2013-05-01 Created By BaoXinjian
- 详细安装ss的过程(vultr)
#更新程序yum update -y #安装setuptoolsyum install -y python-setuptools #安装pipeasy_install pip #安装shadowsoc ...
- jquery 文本域光标操作(选、添、删、取)
一.JQuery扩展 ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 http://www.cnblogs.com/phpyangbo/p/55286 ...
- iOS8通讯录之联系人增删查,多号码增删操作
#import <AddressBook/AddressBook.h> #pragma mark 删除一个号码 - (void)deleteLocalMarkSuccess:(void(^ ...
- (转)JITComplier、NGen.exe及.NET Native
一.JITComplier 如你所知,JIT(just-in-time或“即时”)编译器是CLR的重要组件,它的职责是将IL转换成本地cpu指令. <<CLR via C#>> ...
- webpy分页类 + 上传类
webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,d ...
- EBS R12重启后无法进入登录页面
应用启动正常,但无法进入登录页面: The webpage cannot be found HTTP 404 ... No known changes had been made and the Mi ...