我原先考虑过再 recv(或send) 之后用sleep(...) 的方法来 控制recv(或send)的速度。
后来考虑了一下,用这种方法,send不会出什么,但是recv可能会有问题,因为sleep的过程中,可能会使send过来的数据因为recv端的接收的数据缓冲溢出而丢失。
所以请问那位高手知道解决的办法。比如说控制 TCP 通讯中ACK的时间。 注:希望是通用的方法。比如控制http或者ftp下载速度,象FlashGet,NetAnts那样的。
后来考虑了一下,用这种方法,send不会出什么,但是recv可能会有问题,因为sleep的过程中,可能会使send过来的数据因为recv端的接收的数据缓冲溢出而丢失。
所以请问那位高手知道解决的办法。比如说控制 TCP 通讯中ACK的时间。 注:希望是通用的方法。比如控制http或者ftp下载速度,象FlashGet,NetAnts那样的。
解决方案 »
- delphi update4安装后出错
- 继承窗口鼠标感应区域的不随主窗口变化的问题
- 关于SQL 语句请教
- 根据斜度和方位,用三维图表示出来?
- 如何将在自己计算机上编译的程序在其它计算机上运行?
- 数据库安装
- 执行程序时发生这样的错误提示,不知道该怎么处理?
- 请教:DELPHI7里如何将文本(不是文本文件)读取和写入SQL SERVER里的TEXT类型数据。
- 北京地区花钱解决 用TClientSocket 和TServerSocket 传输大量数据丢包现象
- 做一个最小的桌面数据库,用什么?
- 请提供免费的windows版的围棋对弈软件下载地址
- 我要写一个程序在前台不需要运行后台运行可以:就像平时邮件服务品一样在前台不需要运行,而后台是提供服务的,要怎样来实现
recv(buffer1,....,....);
recv(...,...,..);
服务器端收到数据后就回一个信息给客户端。
recv(..,..,..);
send(..,..,..);
这样子就不会出现数据溢出,应为RECV一直会等待,直到有数据传来为止。
多线程+select+send