自建数据包中包含内存流数据,如何发送呀???(50分)

  • 主题发起人 主题发起人 lcyandzj
  • 开始时间 开始时间
L

lcyandzj

Unregistered / Unconfirmed
GUEST, unregistred user!
建数据包中包含内存流数据 如下
type
TCommBlock = record
Command,
MyUserName,
ReceiverName: string[100];
mem:tmemorystream;
end;
采用这句发送 采用indy 的idtcpclient的
WriteBuffer(NewCommBlock, SizeOf(NewCommBlock), True);
怎么 就收到408个字节呀
 
你可能应该分开发吧,
把内存流别放包里面。
type
TCommBlock = record
Command,
MyUserName,
ReceiverName: string[100];
end;
mem:tmemorystream;
第一次发结构,第二次发流数据
 
to zywcd
这个方法我知道 但是我想能不能通过我上面的方法发送
 
你使用SizeOf(NewCommBlock), 的时候,得不到流大小吧 ,这个时候流应该是指针,
你这样发送,WriteBuffer(NewCommBlock, SizeOf(NewCommBlock), True);当然不可以,
 
to zywcd
如果用WriteBuffer 怎么得到这个包的大小 得到包的大小后 可以发送吗
请指教 谢谢
 
我没有测试。感觉不可以。如果你想一次发送,其实可以把你结构的其他内容也放入流里面,比如追加在后面,因为是固定长度,你收到后可以还原的。就多几行代码而已 ,这样可以实现一次发送全部内容。
 
我也这么想的 好像没有别的方法了
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部