我正在做小的ftp客户端接收来自ftp的一些大文件。我在RFC中读到ABOR命令对于服务器来说是非常有问题的。我看到的几乎所有服务器都会继续发送数据,即使在ABOR通过控制连接发送之后也是如此。关闭数据传输可能会导致(在70%的测试中)关闭控制连接。服务器只是在我推送的ABOR包之后发送FIN包。在不丢失控制连接的情况下停止接收某个字节的最好方法是什么?FlashFXP在所有类型的连接延迟和服务器上都可以做到这一点。在调查tcp流量时,我发现了标准的ftp rfc流。
但在我的例子中,使用这种技术中止传输仍然没有成功:
1)关机(passive_socket、SD_BOTH)
2)闭锁(Passive_socket);
3)发送(control_socket,"ABOR\r\n")
4) recv(control_socket) -此处停止
谢谢
发布于 2011-07-17 01:06:25
"ABOR\r\n“命令应作为带外数据发送。如果是send() -
send(control_socket, "ABOR\r\n", 6, MSG_OOB);在您recv()代码426之后的一段时间内,传输中止。数据连接已关闭。
如果你无法成功中止传输,下面的链接会更有帮助:http://www.developer.nokia.com/Community/Discussion/showthread.php?134079-Telnet-quot-Interrupt-Process-quot-(IP)-signal-amp-Telnet-quot-Synch-quot
发布于 2011-06-24 00:13:23
在关闭数据传输连接时,您不应丢失控制连接,它们是两个独立的套接字。也许可以检查你的代码,看看为什么控制连接会被关闭。
https://stackoverflow.com/questions/6457207
复制相似问题