如何知道socket已经成功把数据发出去!??在线

zkbao 2005-03-29 09:50:21
当,HostSocket->Socket->SendText(data_str);时,如何知道是否数据确实发送出去?我原来是采用得到发送的字节数来检查,但看帮助,好像说这样做也是不确定的,返回的值有可能和实际发送出去的数不同,请高手赐教!

send_length = HostSocket->Socket->SendText(data_str);
if (send_length == 0)
{
int i;
for(i=1;(i<10 && send_length == 0);i++)
{
send_length = HostSocket->Socket->SendText(data_str);
Delay(500);
}
}
...全文
402 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-07-18
  • 打赏
  • 举报
回复
学习
zkbao 2005-03-29
  • 打赏
  • 举报
回复
楼上的,你的意思我大楖看懂了,但是我想问,如何再次发送剩下的字节串呀?我的意思是,所有要发送的东西都在缓冲里,怎么控制呢?我是菜鸟,谢了
yhec 2005-03-29
  • 打赏
  • 举报
回复
例如:你要发送100字节,发送后,返回的实际发送字节数可能比这个数少,例如:88个字节,
你得再次发送剩下的字节串,直到把你要发送的字节都发送出去,当然,是用循环语句了,
很可能发送不出去,或只发送部分后,再也不能发送,所以在循环中要不时检查发送的时间
数(GetTickCount()),超过指定的时间数(你在程序中要认定此参数),程序就要认定是"超时"
错误,发送失败.


1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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