我的socket怎么一次接收不完数据??

aliyan 2002-03-14 10:37:18
const
L=4*1024;
var

s:array[0..L-1] of byte;
我用API recv(client,s,L,0)
可是我才发了24个数据却要两次才要接收完,那我要是有几千个数据过来可怎么收??

注:
我是在timer中来检测接收的。。。

...全文
104 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qyg 2002-03-14
  • 打赏
  • 举报
回复
用什么包呀,这样就好了:
procedure TForm1.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Real_info: 你的类型;
begin
Socket.ReceiveBuf(Real_info,SizeOf(Real_info));
end;
aliyan 2002-03-14
  • 打赏
  • 举报
回复
我是在2000下,可是好像有时可以接收完呀。。
还有我就发了如下:
01200203071317aabbffee01
都要收两次呀。。
怎么来定义包。。
duanfeng 2002-03-14
  • 打赏
  • 举报
回复
对,缓存问题
可以进行socket设置
aliyan 2002-03-14
  • 打赏
  • 举报
回复
??
outer2000 2002-03-14
  • 打赏
  • 举报
回复
那就需要定义的你的包了啊,比如加包头,包尾?
newyj 2002-03-14
  • 打赏
  • 举报
回复
肯定不可能一次接受完全,

98默认的缓存有8k,即使调大也没用
比如发给几百兆的东西给你,怎么可能一次完成

dext 2002-03-14
  • 打赏
  • 举报
回复
GZ
aliyan 2002-03-14
  • 打赏
  • 举报
回复
帮帮忙呀???
aliyan 2002-03-14
  • 打赏
  • 举报
回复
??我是用sock的API呀
只有recv

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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