关于InDy的UDPClient.SendBuffer的用法~~(200分)

  • 主题发起人 主题发起人 coolcat
  • 开始时间 开始时间
C

coolcat

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么把一个stream的内容放入buffer中发送出去~~
下面的程序为什么有错??
procedure TForm1.Button1Click(Sender: TObject);
var
filestream:TMemoryStream;
sndData:Pchar;
begin
FileStream:=TMemoryStream.Create;
Filestream.LoadFromFile('c:/config.sys');
GetMem(sndData,Filestream.size);
FileStream.ReadBuffer(sndData,FileStream.Size);
sndData:=PChar(FileStream.Memory);
IDUDPClient1.SendBuffer(sndData,Filestream.size);
FileStream.Free;
FreeMem(sndData);
end;
请高手指点~~~
 
FillChar(sendData^,Filestream.size,0);
FileStream.WirteBuffer(sndData^,Filestream.size);
IDUDPClient1.SendBuffer(sndData^,Filestream.size);
应该就OK了
 
不要应该.是一定可以才行~~
我试过成功后给你加分~~
 
我没有用过INDY的控件,但是我感保证,我写的一定没有问题![:D]
 
你把它复杂化了,用下面的代码就OK了:
FileStream:=TMemoryStream.Create;
Filestream.LoadFromFile('c:/config.sys');
IDUDPClient1.SendBuffer(FileStream.Memory^, Filestream.size);
FileStream.Free;
Delphi6下编译运行通过
 
如果一个文件太大了,你可就玩完了,最好是循环发送[:D]
 
这个是题外话了
c:/config.sys不可能太大吧? 哈哈
如果超过buffersize(默认为8K)的文件,就要分段发送了。 否则,发送就会失败。
 
我自己已经解决了但还要谢谢两位每人一百分~~
 
后退
顶部