• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

关于ServerSocket 和ClientSocket通信的问题

Jinglihui 2003-12-04 07:32:35
关于socket 通信的问题向你请教:
有两台机器用ServerSocket和ClientSocket进行通信
ClientSocket用
for(int i=0;i<Memo1->Lines->Count;i++)
{
ClientSocket->Socket->SendBuf(Memo1->Lines->Strings[i].c_str(),Memo1->Lines->Strings[i].Length());

}
ClientSocket->Close(); //在这里必须关掉它
方法向服务器端发送Memo1的内容,奇怪的是为什么SocketServer只能收到前几行呢?
这是什么原因造成的?如果解决?
...全文
15 点赞 收藏 4
写回复
4 条回复
fatwave 2003年12月04日
for(int i=0;i<Memo1->Lines->Count;i++)
{
ClientSocket->Socket->SendBuf(Memo1->Lines->Strings[i].c_str(),Memo1->Lines->Strings[i].Length());
Application->ProcessMessages();
Sleep(10);

}
Sleep(100);
ClientSocket->Close(); //在这里必须关掉它
加些延时OK了!
回复 点赞
constantine 2003年12月04日

回复 点赞
netsys2 2003年12月04日
ClientSocket->Close(); //在这里必须关掉它

错误!对方还没有接收完你就拆线了。

SendBuf并不是等发完了才返回,他只是吧数据交给send API函数。

记住:在通信系统设计中,必须要让接受方拆线。
回复 点赞
pzoon 2003年12月04日
UP
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2562

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告