gpt4 book ai didi

java - FTP:启动文件传输后何时发送代码 226?

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:32 25 4
gpt4 key购买 nike

从FTP服务器的角度来看,如果客户端通过RETR命令请求文件,服务器会通过指定端口创建到客户端的数据连接(套接字),并通过写入输出流开始传输。服务器的编码方式(JAVA)是这样的:在套接字中完成写入后,刷新输出流,然后关闭套接字。此后代码“226”被发送到控制 channel 中的客户端。

由于连接是通过非常慢的网络进行的,因此 226 消息在实际数据传输完成之前就到达了。这是一个棘手的情况,客户端代码无法更改,服务器必须确保客户端收到数据后发送 226。

我尝试在互联网上搜索,但得到的信息很少,但不确定哪一个是标准。1. 使用setSoLinger()方法打开SO_LINGER并设置超时。2. 在将每个字节写入套接字后引入延迟(快速连接会影响性能)。

除了上述之外还有其他办法可以解决这个问题吗?关于在 Linux/Solaris/Windows FTP 服务器中发送 226 所遵循的标准的任何想法。

我可以在 stackoverflow 中看到类似的线程“何时应该从 FTP 服务器发送 226?” ,但无法从中找到与我的问题相关的太多信息。

非常感谢这里的帮助...谢谢

最佳答案

不要接受延迟,我唯一能想到的是构建一个代理层来拦截确认代码,检查文件并将代码重新路由到应用程序,就像 telerik fiddler 作为应用程序所做的那样。

与我之前在向服务器传递消息时使用 JMS 确认模式相同的概念,我必须实现相同的概念。

祝你一切顺利,我的 friend

关于java - FTP:启动文件传输后何时发送代码 226?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22527333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com