编程的ftp:如何中止文件传输?

我正在做小ftp客户端从ftp接收一些大文件。 我在RFC中读过,ABOR命令对于服务器来说是非常有问题的。 即使在通过控制连接发送ABOR之后,几乎所有看到的服务器都会继续发送数据。 closures数据传输也可能导致(在70%的testing中)closures控制连接。 服务器只是在推送ABOR包之后发送FIN包。 什么是最好的方法来停止接收某个字节,而不是失去控制连接? FlashFXP可以在所有types的连接延迟和服务器上执行此操作。 在调查tcpstream量时,我发现标准的ftp rfcstream量。

但在我的情况下仍然没有成功的中止转让使用这种技术:

1)关机(passive_socket,SD_BOTH)

2)closesocket(passive_socket);

3)发送(control_socket,“ABOR \ r \ n”)

4)recv(control_socket) – 在这里停滞

谢谢

“ABOR \ r \ n”命令应作为带外数据发送。 如果发送() –

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 )信号放大器,Telnet的QUOT-同步-QUOT

关闭数据传输连接时,您不应该失去控制连接,它们是两个独立的套接字。 也许检查你的代码,看看为什么控制连接正在关闭。