我正在做小型ftp客户端,用于从ftp接收一些大文件。我已经在RFC中阅读到ABOR命令对于服务器来说是非常有问题的。我看到的几乎所有服务器都即使在通过控制连接发送ABOR之后仍继续发送数据。关闭数据传输也会导致(占测试的70%)关闭控制连接。服务器在我推送的ABOR数据包之后仅发送FIN数据包。
停止接收某个字节并且不丢失控制连接的最佳好方法是什么? FlashFXP可以在所有类型的连接延迟和服务器上执行此操作。在调查tcp流量时,我发现了标准的ftp rfc流。
但就我而言,使用这种技术中止传输仍然没有成功:
1)关机(passive_socket,SD_BOTH)
2)closesocket(passive_socket);
3)send(control_socket,“ABOR\r\n”)
4)recv(control_socket)-停在这里
谢谢
最佳答案
“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
关于c++ - 编程ftp : how to abort file transfer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6457207/