indy10 idtcpclient接收包如何知道这个包的大小

kendychong 2009-02-25 12:15:45
我知道在下面这行语句中
Form1.idtcpclnt1.Socket.ReadBytes(tmpBuffer,SizeOf(sttBuffer),false);
tmpBuffer是一个arrbyte,而sttBuffer是一个record(struct)
现在情况是这样的,我用Client去接受别人的server
我不知道他的包是多大的,这个时候怎么办?
如何取到对方回的包大小?
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaocongzhi 2009-02-25
  • 打赏
  • 举报
回复
那就尽量定大点
kendychong 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 window_8888 的回复:]
最好采用一问一答方式进行UDP和TCP,即加验证.
先发数据长度,再发数据内容.最后再加校验.这样确保万无一失
[/Quote]
我知道这样可以,但是我现在是接收别人发过来的任何数据包,协议也是不定的,大小都很乱的
window_8888 2009-02-25
  • 打赏
  • 举报
回复
最好采用一问一答方式进行UDP和TCP,即加验证.
先发数据长度,再发数据内容.最后再加校验.这样确保万无一失
kendychong 2009-02-25
  • 打赏
  • 举报
回复
如何获取这个边界呢?
僵哥 2009-02-25
  • 打赏
  • 举报
回复
TCP包都会有边界。

1,593

社区成员

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

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