Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过网络发送的理想缓冲区/数据包大小是多少?_C#_Networking_Buffer_Networkstream - Fatal编程技术网

C# 通过网络发送的理想缓冲区/数据包大小是多少?

C# 通过网络发送的理想缓冲区/数据包大小是多少?,c#,networking,buffer,networkstream,C#,Networking,Buffer,Networkstream,现在我有一个通过网络发送文件的应用程序。我在这个阶段,我需要优化应用程序,使传输速度是理想的 我有一个看起来非常专业的格拉夫,展示了我的情况: Y-发送时间。 缓冲区大小 Y是发送时间,X是缓冲区/数据包大小。 你可以看到,从我的实验中我注意到,如果缓冲区大小太小,发送时间就会变慢,如果缓冲区大小太大,发送时间就会变长。 缓冲区大小似乎是理想的,这是一个最佳点。这就是我需要一些人帮助的地方,希望他们在网络方面有更多的经验 现在这就是我发送缓冲区的方式 for (int i = 0; i <

现在我有一个通过网络发送文件的应用程序。我在这个阶段,我需要优化应用程序,使传输速度是理想的

我有一个看起来非常专业的格拉夫,展示了我的情况:

Y-发送时间。 缓冲区大小

Y是发送时间,X是缓冲区/数据包大小。 你可以看到,从我的实验中我注意到,如果缓冲区大小太小,发送时间就会变慢,如果缓冲区大小太大,发送时间就会变长。 缓冲区大小似乎是理想的,这是一个最佳点。这就是我需要一些人帮助的地方,希望他们在网络方面有更多的经验

现在这就是我发送缓冲区的方式

 for (int i = 0; i < NoOfPackets; i++)
 {
       if (totalFileLength > netBufferSize)
       {
          currentPacketLength = netBufferSize;
          totalFileLength = totalFileLength - currentPacketLength;
       }
       else
          currentPacketLength = totalFileLength;

       SendingBuffer = new byte[currentPacketLength];
       compressed.Read(SendingBuffer, 0, currentPacketLength);
       netWorkStreamVar.Write(SendingBuffer, 0, currentPacketLength);
  }
for(int i=0;inetBufferSize)
{
currentPacketLength=netBufferSize;
totalFileLength=totalFileLength-currentPacketLength;
}
其他的
currentPacketLength=总文件长度;
SendingBuffer=新字节[currentPacketLength];
压缩读取(发送缓冲区,0,currentPacketLength);
netWorkStreamVar.Write(发送缓冲区,0,currentPacketLength);
}
现在我遇到的最快的发送缓冲区大小是1024*256。 问题清单:

如何确定最佳点?(发送缓冲区大小理想时)

是否由文件类型确定

这是否取决于我的网络配置


是否有“行业”标准

理想的缓冲区大小取决于网络速度、封装大小、当前PC和许多其他参数。因此,请尝试设置不同的大小-512、1024 e.t.c.,并为您的情况找到最佳大小。嗯,因为这不是一个单一的计算机程序,我是否需要修正算法来确定每次尝试发送文件时的理想数据包大小?可能会尝试使用数据包大小来确定缓冲区大小(它不取决于文件类型)只有大小。你说的包大小是什么意思?让我们假设你发送10mb的文件/少数文件-然后缓冲区大小将设置为2048,然后文件大小为200Kb-然后使用1024。但缓冲区大小不应该太大。