我正在为使用tcpClient的网络通信构建一些类。我有tcpserver类接受连接并将它们转移到后台线程,以便它可以继续接受该端口上的连接。我可以使用多个客户端连接到服务器,并执行从服务器到客户端的文件传输。在我的开发机器上运行服务器和客户端,我获得了很好的文件传输速度(160 mbps左右 - 我正在使用大包数据包)。使用tcpClient进行文件传输的奇数减速
我正在测试来自多个客户端的越来越大的文件传输,并且发现了一件奇怪的事情 - 当尝试发送大文件(> 3gig)时,大约一半的传输速度开始缓慢并波动。如果我尝试发送我的3 gig测试文件(一个.iso),同时还使用两台或三台其他客户端传输大文件(> 500meg),同时也在我的开发机器上运行,则.iso的传输可能会放慢抓取并停留那里...即使在其他客户完成接收文件之后,每秒1Mg甚至更低也是如此。无论如何,我也可以再次看到速度提升,并在每秒30至80兆克之间波动。
有没有错误,并通过代码筛选,我只是不知道放缓可能发生的地方。
这可能是一个线程的优先事项?我必须使用大的变量类型来处理文件传输的一些元素(一个用于文件大小的int64,另一个用于记录到目前为止已经进入的字节数量等)......我可以看到随着这些变量的值变大而放缓?
任何帮助将不胜感激。
好的......如果我在到达客户端时没有真正写入文件字节,我根本没有任何这些问题。当我尝试将字节实际写入客户端中的文件时发生了一些情况。我只是用FileStream写一个字节数组... – Pete 2011-12-25 21:43:54