1

使用我编写的 FTP 客户端,我有时会226 Transfer OK在上传完成后收到来自 FileZilla 服务器的消息,有时我什么也收不到。并不是客户端在226 Transfer OK收到之前断开连接,因为我可以在服务器上看到 FileZilla 从未发送过它。

我需要知道服务器何时收到完整的上传,否则在关闭连接之前我不知道整个文件是否已进入网络。

任何想法可能导致226 Transfer OK消息的不可靠性?实际上是什么触发它被发送?

4

1 回答 1

2

我自己想通了!我发现是FIN/ACK客户端在数据套接字端口上发送的226 Transfer OK消息提示 FileZilla 服务器在控制套接字端口上发送消息(在数据套接字端口上发送自己FIN/ACK的响应之后)。

在 WinRT 中,数据套接字的关闭导致FIN/ACK客户端发送消息。

因此,关闭 FTP 连接的正确顺序是(在发送最后一个数据包之后)关闭数据套接字,等待226 Transfer OK控制套接字上的消息,发送控制套接字QUIT上的消息,然后关闭控制套接字。

于 2013-03-11T20:59:05.427 回答