【发布时间】:2011-12-25 18:03:07
【问题描述】:
我正在使用 tcpClient 构建一些用于网络通信的类。我有 tcpserver 类接受连接并将它们改组到后台线程,以便它可以继续接受该端口上的连接。我可以使用多个客户端连接到服务器,并从服务器到客户端进行文件传输。在我的开发机器上同时运行服务器和客户端,我获得了不错的文件传输速度(160 mbps 左右 - 我正在使用大数据包大小)。
我正在测试来自多个客户端的越来越大的文件传输,并注意到一个奇怪的事情 - 在尝试发送大文件 (>3gig) 时,传输大约一半开始变慢和波动。如果我尝试发送我的 3 gig 测试文件(一个 .iso),同时还使用两个或三个其他客户端传输较大的文件(>500meg),也在我的开发机器上运行,.iso 的传输可能会慢到爬行并停留那里...慢到每秒 1 兆或更少,即使在其他客户端完成接收他们的文件之后也是如此。它也可能无缘无故地再次加快速度并在每秒 30 到 80 兆欧之间波动。
没有错误,并且在筛选了代码后,我只是不知道减速可能发生在哪里。
这可能是线程优先级的事情吗?我必须使用大型变量类型来处理文件传输的一些元素(一个 int64 用于文件大小,另一个用于记录到目前为止已进入的字节量等)......我能看到随着这些变量的值变大而减速?
任何帮助将不胜感激。
【问题讨论】:
-
好的...如果我在文件字节到达我的客户端时实际上没有写入文件字节,那么我根本没有这些问题。当我尝试将字节实际写入客户端中的文件时,发生了一些事情。我只是使用 FileStream 来写一个字节数组...
标签: windows vb.net file tcpclient