气死我拉拉!文件传输问题!!!!!!!!!!!!!!

zdy0155 2003-08-18 06:00:08

在接受事件中
我一开始stream 是 tmemorystream
可是收到的数据大小基本一样! 可总是少几行文本!
后来换了TFilestream
可是 当程序 执行到 if (stream->Size>=size)
这个以后,还在接收东西,导致出错
我按传过了来的大小,接受完毕释放stream,
可是,怎么还要接收机会才算完事呢!!!
这是怎么回事!!!!!!!!!!


if (size==0 )
{ size=StrToInt(Socket->ReceiveText());
Socket->SendText("ok");}
else
{leng=Socket->ReceiveLength();
Socket->ReceiveBuf(buf,leng);
stream->Write(buf ,leng);
}

if (stream->Size>=size)
{ if (stream!=NULL)
delete stream;
stream=NULL;
}

...全文
23 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloom 2003-08-19
  • 打赏
  • 举报
回复
你用的是控件不还是直接使用Winsock?
mme 2003-08-19
  • 打赏
  • 举报
回复
哈哈,你没有检验每个包的大小,因为传输总有时候是会出错的.总会多传送一些东西给你.
zdy0155 2003-08-19
  • 打赏
  • 举报
回复
can't create new socket
我在调试的有时候遇到这个 错误之后,程序的socket 就不能激活了
是什么原因引起的 啊 ,上面问题,我已经解决了,
不过,为什么接受的文件总要比原先的大啊

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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