tcp 如何调节发送速度

2025-10-18 22:03:57

1、 发送端: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();

更多0

tcp 如何调节发送速度

2、如果在发送过程设置等待,情况会好些,但是无法确定等待多长时间,接收端代码:  long filesize = BitConverter.ToInt64(recvbuf, 0);//接收到的文件大小           FileStream fs = File.Create(path);           long recvall = 0;//接收到的字节数                     while (recvall < filesize)           {               r = 0;               try               {                   r = handle.Receive(recvbuf, Constants.RECORDSIZE, SocketFlags.None);               }               catch               {               }               if (r > 0)               {                   recvall += r;                   fs.Write(recvbuf, 0, r);               }           }           fs.Close();

tcp 如何调节发送速度

3、你在接收程序捕获到异常后什么也不处理,如果这时候出现网络意外,就会在while中死循环,客户端就发送不了任何数据了。

tcp 如何调节发送速度

4、你在捕获到异常后,关闭连接。客户端发生发送异常后,停上几秒,然后重新尝试连接,并从上次断点继续发送。你可以还要设计一个协议,让服务器告诉客户端成功收到数据的位置,让客户端从断点处重新传输。

tcp 如何调节发送速度

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢