把数组怎么当成数据流通UPD发送出去(50分)

  • 主题发起人 主题发起人 qkserver
  • 开始时间 开始时间
Q

qkserver

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把一个三维或多维的数组加载到数据流中, 通过UDP或SOCKET发送出.
我的分不多了, 少一点
 
把数组直接写入数据流,好像是stream.whitebuffer,然后再发送就可以了

补充一段代码,可能你更明白多一点
procedure TForm1.Button1Click(Sender: TObject);
var
stream : tmemorystream;
aaa : array [0..100] of integer;
begin
stream := tmemorystream.Create;
stream.Write(aaa,sizeof(aaa));
csocket1.Socket.SendStream(stream);
end;
 
to anick
你好, 在麻烦你一下, 接收的数据流怎么还原成数组呢,我收到都是空的,谢谢了
 
可以 move 还原
 
to 金卡绣球jk8.com
怎么用MOVE 学详细点好不好,我搞不懂呀
 
把流拷贝到结构
 
adata.readbuffer(buf,size)
 
to 金卡绣球jk8.com,怎么拷到结构呀老兄,帮帮忙吧,写详细一点吧
to wuchunhua,错误呀,按你的写怎么错了呀, 我定义了一个和发送时一样大小的数组,接收数据时提示错误
 
用这个 csocket1.sendbuf(var buf;bufsize:integer;flag:integer=0)
 
1.动态数组不熟用静态数组
2.事先分配好指定内的大小,可通过循环来读取。
 
我也正在做类似的项目,我的解决方法是把动态数组封装成一个类,要实现多少维的数组也行,就看你的类怎么写了。

然后在类里定义一个方法,发送时通过这个方法把数组数据转换成字符串,以字符串的形式发送,Server 收到字符串后,再通过类的另一个方法,把字符串还原成数组。

这肯定是一个笨方法,但我现在已经实现了,正在项目中使用,希望高手们给点建议,呵呵
 
大家有没有什么好的方法,直接发动态数组的
 
把你发送的贴出来看看。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部