TClientSocket丢包问题

lyw0728 2006-06-02 11:02:13
SQL数据库,做了个远程客户端,服务器上面做了个server端
用的ServerSocket和clientSocket控件。
远程客户端传来SQL语句,本地执行数据库,然后通过ClientSocket发回去.在ADO循环中next一条一条的发,测试过整包发更不顺,每条也就3-400字节。
现在局域网没问题,adsl也问题不大。但是用联通那种无限网卡,就丢数据……速度慢了丢数据,有什么好办法么

网上搜索了一些文章,有的说在循环中Sleep(),经过测试有一点作用,还有就是发送要求确认回复,不过这两个办法都比较慢,要求实时性比较强。有什么别的办法么?
ServerSocket用得异步。
...全文
555 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iec 2006-08-10
  • 打赏
  • 举报
回复
发送要求回复是很好的办法,我觉得对速度不是很大的影响,除非网络阻塞.
如果你发送速度比较快,包小的话,可以这样设置一下:不采用延时算法
long bNodelay = 1;
setsockopt(
Socket->SocketHandle,
IPPROTO_TCP,
TCP_NODELAY,
(char *)&bNodelay,
sizeof(bNodelay)
);
still_alive 2006-08-10
  • 打赏
  • 举报
回复
to:iec(冰冰凉)
请你详细讲一下号吗?
这个问题比较头痛,
所以你的回答让我看到了光明!
wood542344 2006-08-09
  • 打赏
  • 举报
回复
关注一下。。。
liqingle 2006-08-09
  • 打赏
  • 举报
回复
学习.
yy2001 2006-08-08
  • 打赏
  • 举报
回复
xuexi
still_alive 2006-08-04
  • 打赏
  • 举报
回复
这个问题比较讨厌,我也遇到,但是解决不太好,在这里帮你顶,并关注这个问题!
pp616 2006-06-02
  • 打赏
  • 举报
回复
把数据累计到8K。然后发送一次。等待接收端回应然后再发。这样效果会好些。
sfengnet 2006-06-02
  • 打赏
  • 举报
回复
建议每次发送的时候发送自己定义的一个头包,里面可以写着当前包的大小,接收的时候可以按照这个大小来接收

1,317

社区成员

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

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