日期:2014-05-18  浏览次数:20821 次

我使用Sockets.TcpClient建立2个节点,来测试客户端节点的下载速度,但局域网是100M的路由器,而我测试的结果是10M左右...
如题,我的方法如下:

// ======================================
1\建立TcpClient服务器端\并建立监听\监听发现有客户端请求时将my.mpg(30M的视频文件)发送到客户端的Tcp连接中
Socket socket = tcpListener.AcceptSocket();
socket.Send(File.ReadAllBytes(@"E:\my.mpg");

2\客户端接收到该网络流后读取到Byte[]数组中并生成my.mpg(30M的视频文件)
NetworkStream outStream = tcpClient.GetStream();
DateTime startTime = DateTime.Now;//记录开始时间
Byte[] fs = new Byte[30381253];
outStream.Read(fs,0,fs.Length);//读取数据
DateTime finishTime = DateTime.Now;//记录结束时间
CreateFile(fs);//建立文件

3\得到的结果
从客户端下载数据的速度是10M左右,视频文件可以正常使用,

4\问题
我测试速度的方法是否正确?
我们使用的是100M的4口路由器,但我测试的为什么是10M的下载速度呢?

//==========================================



------解决方案--------------------
应该差不多了,100M的网速指的是网络传输的比特率,也就是说100M·Bit/每秒,而不是字节。再加上系统处理的延迟,时间上差不多了!