大家可以随便在论坛测试一个TCP传送文件的函数。
做个小试验
首先:
将发送端循环内改为
$fdata = FileRead($File, 1024 * 1024 * 10) ;每次读取字节:1024 * 1024 * 10
$i += 1 ;统计发送次数
TrayTip("发送文件次数" & $i,当前发送, 3) ;显示发送次数
客户端循环内改为
sleep(500);每次接收延时 500毫秒,为了看得更清楚
$i += 1
$sBuff = TCPRecv($ConnectedSocket, 1024 * 1024 * 10, 1)每次接收字节: 1024 * 1024 * 10
$Cur_size = Binarylen($sBuff) / 1024
TrayTip("循环此数:" & $i, "当前接收大小:" & $Cur_size, 3)
-------------
大家会发现问题为 客户端每一次将数据 1024 * 1024 * 10 发送完成。就会等待客户端接收完成。
而客户端每一次只会接收 62KB左右的数据。TCPRecv 函数的说明是可以设置每次接收字节大小的,但这里设置为 1024 * 1024 * 10 或者其它都没用,每次都是是返回 62KB左右。
测试环境为内网KM。
大家有没有同样的问题? |