高分求: UDP中怎么传送TStringList类型数据?

smilelhh 2004-06-28 05:22:05
我想用UDP实现网络通信,我想通过IDUDPServer传回一个TstringList类型数据。
我在其UDPServerUDPRead事件中,这样写的,编译能通过。

filelst := TStringList.Create;
FindAll(rect,filelst);
//开始返回列表
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,filelst,sizeof(filelst));
FreeAndNil(filelst);

但是我在UDPClient中进行接收,编译也通过,但运行就报错。
filelst := TStringList.Create;
self.UDPClient.ReceiveBuffer(filelst,4096);//这个数值怎么付??
self.ListView1.Items.Clear;
for i:= 0 to filelst.Count -1 do //报错!!!!

高手有没有办法??




...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilelhh 2004-06-30
  • 打赏
  • 举报
回复
不对呀, 我这样发送时候一般是好的,
当strings特别大时候,就出现message too long的错误!!
zhuangbx220 2004-06-30
  • 打赏
  • 举报
回复
每个包最大8192字节吧,它自动会分多次发送
jmf2000 2004-06-30
  • 打赏
  • 举报
回复
lqdmafeng 2004-06-29
  • 打赏
  • 举报
回复
没有吧 ,但是应该跟发送和接收缓冲区有关系吧,
smilelhh 2004-06-29
  • 打赏
  • 举报
回复
那么我问一下:
通过ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rect[1],Length(rect));
这样子发送本文是不是有长度限制!!??????
aiirii 2004-06-28
  • 打赏
  • 举报
回复
filelst.Text
就可, 會自動帶轉行符的,
到另外一邊, 再用另外一個TStringList.Text 的東西加上去就可
smilelhh 2004-06-28
  • 打赏
  • 举报
回复
你的意思是这样吗?
filelst := TStringList.Create;
FindAll(rect,filelst);
rect := filelst.Text;
ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rect[1],Length(rect));
FreeAndNil(filelst);
可我怎么取呢?这样我取到的数据不对呀?。
filelst := TStringList.Create;
rect := self.UDPClient.ReceiveString();
filelst.Text:= rect;
lijinghe1 2004-06-28
  • 打赏
  • 举报
回复
传stringlist.text

再赋给text

1,593

社区成员

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

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