idtcpclient的困惑!

czyoooo 2008-11-02 02:52:59
DELPHI2009下:
var
SendBuf:TIdBytes;
SendString:string;
SendString:=chr($91)+chr($3E)+chr($00)+chr($48)......;

SendBuf:=RawToBytes(SendString,Sizeof(SendString));
IdTCPClient1.Socket.Write(SendBuf,sizeof(SendBuf));
//发送的时候自动把$00后面的内容给取消掉了,什么缘故呀?
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangsp 2008-11-03
  • 打赏
  • 举报
回复
按照僵哥的说发 应该没有问题了
是不是 你接收后 又做了 数据转化啊?
czyoooo 2008-11-03
  • 打赏
  • 举报
回复
CSDN怎么回事情呀,回复的内容看不到?
寻梦928 2008-11-03
  • 打赏
  • 举报
回复
是不是你进制转换的问题?
czyoooo 2008-11-03
  • 打赏
  • 举报
回复
czyoooo 2008-11-02
  • 打赏
  • 举报
回复
发送的内容为chr($01)+chr($3E)+chr($00)+chr($48)......;
怎么会变为chr($40)+chr($3E)+chr($00)+chr($48)......; 部分数据会发生变化!
czyoooo 2008-11-02
  • 打赏
  • 举报
回复
var
SendBuf:TIdBytes;
SendString:string;
SendString:=chr($91)+chr($3E)+chr($00)+chr($48)......;

SendBuf:=RawToBytes(SendString[1],(*Sizeof*)Length(SendString));
IdTCPClient1.Socket.Write(SendBuf,(*sizeof*)Length(SendBuf));

//好象是可以但是好象Write的内容变了,
SendString:=chr($01)+chr($3E)+chr($00)+chr($48)......;

发送实际内容:
5E 3E 00 48。。。。。


有部分内容发生了变化,我在COMMVIEW里面看到的,发送的数据和实际要求发送的数据有偏差,以前的版本好象没有这个问题!
UndefinedCoder 2008-11-02
  • 打赏
  • 举报
回复
在dfw上就已经给他答案了。SizeOf(SendBuf)=4
僵哥 2008-11-02
  • 打赏
  • 举报
回复
var
SendBuf:TIdBytes;
SendString:Ansistring;
SendString:=chr($91)+chr($3E)+chr($00)+chr($48)......;

SendBuf:=RawToBytes(SendString[1],(*Sizeof*)Length(SendString));
IdTCPClient1.Socket.Write(SendBuf,(*sizeof*)Length(SendBuf));

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧