是这样的,我们的机器上有单片机,配置了IP地址,里面有一个serversocket,我用clientsocket发送一段二进制数据过去,它就会回传一些二进制的数据例如我发送 00111 过去,服务器端就回复 11111
问题:
一:我该如何用clientsocket去发送这些二进制的数据给serversocket呢?是用clientsocket1.socket.sendstream()吗?如果是用sendstream()的话,该怎么去表达这00111的二进制数据呢(别人说用 move)?又怎么去接收这二进制的数据回来呢?
二:我接到的二进制数据 00111,我该如何将它变为字符串,然后showmessage()出来,显示的还是 00111呢?(别人说还是用move)比较急,我找了几天的资料了,没一点头绪,因为我是做ERP数据库类型的软件的,第一次做这种通讯类的软件..完全不会,工程部那又天天催,我都快烦死了...在这里谢谢大家了..
问题:
一:我该如何用clientsocket去发送这些二进制的数据给serversocket呢?是用clientsocket1.socket.sendstream()吗?如果是用sendstream()的话,该怎么去表达这00111的二进制数据呢(别人说用 move)?又怎么去接收这二进制的数据回来呢?
二:我接到的二进制数据 00111,我该如何将它变为字符串,然后showmessage()出来,显示的还是 00111呢?(别人说还是用move)比较急,我找了几天的资料了,没一点头绪,因为我是做ERP数据库类型的软件的,第一次做这种通讯类的软件..完全不会,工程部那又天天催,我都快烦死了...在这里谢谢大家了..
解决方案 »
- TJvLogFile 是否线程安全
- 各位大侠,delphi中如何备份access,在线等待
- 有谁有监视windows窗体的控件,功能如下
- 请问怎样用rave打印复杂格式的报表?
- ?请问各位高手关于EDIT用FOR循环初始化问题。
- 我很少在Delphi版灌水,只是来回答问题,因为。。。
- 关于TLB Editor自动生成代码功能和注释的冲突
- sql and delphi 中的复合查询平问题,急急!
- 这给id中的可用分有很多!可惜等级不够,散分。不过也有一点小问题。解决了在给分。有GIS方面的资料吗?控件也行,你的大作也可以
- 请问哪里有ACROBAT READER 的中文字体包下载?
- 关闭模态窗体另外一个窗体标题会猛闪,求救....
- 求多元一次方程組
至于二进制,就看你怎么组织了.
现在一般的协议,都是用结构来组织的.
例如说,你能不能做一个 Clientsocket和serversokcet的demo,互相发送和接收二进制的数据,然后显示在一个memo内.?(哈哈,不要互发字符串喔,发字符串我还是会的).
再次谢谢哈!!!!!!!
var
str:string;
begin
str := #7;//然后发送这个字符串出去就行了
end.
http://topic.csdn.net/u/20081114/11/091305bd-24cf-4c5c-9083-3993e4d98eae.html
arrBuf: array[0..3] of Byte;
begin
arrBuf[0] := $AA;
arrBuf[1] := $3F;
arrBuf[2] := $4E;
arrBuf[3] := $5F; ClientSocket1.Socket.SendBuffer(arrBuf, SizeOf(arrBuf));
end;再或者复杂点的,
比如,自定义协议:
协议头 命令号(1个byte) 命令参数1(2个byte) 数据区长度(4Byte) 数据区内容
AA 01 0103 6 'abcdef'type
TCommData = record
CommHead : Byte;
CommID : Byte;
CommParam : Word;
DataLen : DWORD;
Data : array[0..65535] of Char;
end;var
CD: TCommData;
strData: string;
begin
strData = 'abcdef';
CD.CommHead := $AA;
CD.CommID := $01;
CD.CommParam := &0103;
CD.DataLen := 6;
StrPCopy(CD.Data, strData); ClientSocket1.Socket.SendBuffer(CD, SizeOf(TCommData));
end;
我在这里找相关贴子,老半天没有找到你发的那张贴,原来直接把标题写成了sendbuffer....
我明天去公司试试哈.....
===========那就把工作交给程序员吧.
===
回复:我是个死要面子,又要强的人,我答应了人家技术部帮他们搞定.....唉呀..anyway,死要面子活受罪.
那第二个问题呢?二:我接到的二进制数据 00111,我该如何将它变为字符串,然后showmessage()出来,显示的还是 00111呢?
出错内容为: "一把红叉 '?" 这样子....是怎么回事呢?