hlzxcjx 发表于 2011-9-5 18:46:27

局域网批量传输文件的过程中TCPAccept阻塞是什么原因?

简单接收代码(批量接收时较复杂一些):
TCPStartup(); 开始 TCP 服务
$IP = @IPAddress1 ;IP
$MainSocket = TCPListen($IP, 65432)
While 1
        Sleep(10)
        $Indextext = TCPAccept($MainSocket)
        $recv= TCPRecv($Indextext, 1024 * 1024)
        If $recv<> "" Then
           ;写文件
        EndIf       
WEnd       

测试发现,在批量接收时个别文件在接收过程中出现阻塞,是端口堵塞?此时$Indextext=-1,$recv 为空        (发送端仍在不断发送数据).若重启TCP服务:TCPShutdown ( ),TCPStartup ( )
则又可以成功接收数据,但会丢失重启过程中的部分数据。阻塞是什么原因?如何解决阻塞问题,使文件完整接收呢?

hzxymkb 发表于 2011-9-5 22:16:06

论坛有相关的例子,你搜索一下看看!

hlzxcjx 发表于 2011-9-5 22:25:58

回复 2# hzxymkb


    搜索不到啊。。。

republican 发表于 2011-9-5 23:03:11

^_^,试试用异步Socket~

hlzxcjx 发表于 2011-9-6 08:01:00

回复 4# republican


    不懂啊,能介绍一下吗?
页: [1]
查看完整版本: 局域网批量传输文件的过程中TCPAccept阻塞是什么原因?