TCP 发送数据速度如何控制?
TCP 发送数据速度如何控制?
如果发送端不停的用Send函数发送数据,每次发送512字节,可是到了第44次发送后,程序就好像停下来了,什么也发不了,是不是发送的速度要求自己控制啊?要如何控制啊。
发送端:
byte[] buffers = new byte[Constants.RECORDSIZE];
FileStream fs = File.Open(filename, FileMode.Open);
int n = 0;
int sd,sds,allsend,ti;
allsend = 0; //已发送的字节数
ti = 0; //发送次数
while (true)
{
n = fs.Read(buffers,0, Constants.RECORDSIZE); //从文件流中读取数据到发送缓冲区
sds = 0;
while (n>0) //要求把n个字节的数据发出去
{
sd = sender.Send(buffers, sds,n-sds, SocketFlags.None);
ti++; //这是发送次数,
allsend += sd;
SendMessage(mainWindow, 2000, n, ti);
sds += sd;
if (sds == n)
break;
}
if (n == 0) //文件流读取完毕,退出发送过程
break;
}
fs.Close();