- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我得到了一个 Java
FtpClient 类,我应该完成/修改它,以便最终产品将用作 WebServer。
下面是一个让我通过命令行与服务器交互的方法。
/*
* Send ftp command
* @param command: the full command line to send to the ftp server
* @param expected_code: the expected response code from the ftp server
* @return the response line from the ftp server after sending the command
*/
private String sendCommand(String command, int expected_response_code){
String response = "";
try {
// send command to the ftp server
controlWriter.writeBytes(command);
// get response from ftp server
response = controlReader.readLine();
if (DEBUG) {
System.out.println("Current FTP response: " + response);
}
// check validity of response
if (!response.startsWith(String.valueOf(expected_response_code)))
{
throw new IOException(
"Bad response: " + response);
}
} catch (IOException ex) {
System.out.println("IOException: " + ex);
}
return response;
}
但是,当我调用 GET
命令时,即
sendCommand("get "+ __file__name__ + "\r\l", 200);
),
我得到以下响应:
500 Unknown command.
我几乎 100% 确定这个问题与我上面发布的方法无关,但我发布它只是为了让您知道我指的是 sendCommand
方法).
以前有没有人对这个命令有过类似的问题?如果是这样,您是如何解决的?
最佳答案
我已经完成了一个与您在这里所做的项目非常相似的副项目,并且我遇到了您在此处讨论的相同问题。我仍然没有弄清楚为什么我不能简单地调用 GET
并读取数据流,但这是我的解决方法。
首先,您需要使用 RETR
而不是 GET
.如果您不熟悉什么 RETR
确实如此,它基本上允许您通过临时 port
将文件作为字节数据包发送您将为数据传输生成。
实例化一个临时的port
, 你需要是 im Passive Mode.
所以,输入:
quote pasv
您的输出将如下所示:
227 Entering Passive Mode (127,0,0,1,143,155).
快速浏览两个括号之间显示的数字可能对您没有任何意义,但是,可以从中得出两个细节。
前 3 个数字代表您的 localhost
这总是 127.0.0.1
, 另外两个被称为 p1
和 p2
.在这种情况下,我们有 p1 = 143
和 p2 = 155
.这两个数字可以用来找出哪个port
已分配给我们进行数据传输。
启动你的 command line
界面
要找出端口号,请将数字代入以下公式:
PORT = p1 * 256 + p2
因此,在本例中我们的端口号是 (143 * 256) + 155
==> (36763).
现在我们有了转账 port
为我们打开并准备好进行数据传输,您可以继续实例化一个新的 Socket
与 port number
从上面提到的公式得出(请注意,每次运行 quote pasv
时数字都会不同,所以不要假设这些是常量)。
这里的下一步是将文件从您自己发送到客户端。请注意,您并不是将数据包定向到特定客户端,而是当前连接的任何客户端都将接收数据包。
要发送文件,请输入以下命令:
quote retr
现在您可以使用 DataInputStream
来自你的课 Socket
读取所有字节,显示它们,然后将它们放入原始文件的相同副本中,或者执行您计划对它们执行的任何操作。
Note.. Note... Note... : the commands listed above were meant to be entered from the command line
但是因为您希望您的应用程序处理所有工作(我假设),所以可以从您的 Java 应用程序传递相同的命令,只需稍微调整一下。您基本上只需要输入 quote
这个词。在我们使用过它们的所有命令中。
我想我今晚打的字已经够多了。我现在要去 sleep 了。如果您需要进一步的帮助,请在下面的评论中告诉我,我会尽快回复。另外,如果我所说的任何内容对您来说没有意义,请告诉我。
关于java - 在 Java 中调用 `500 Unknown Command` 时获取 `GET`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089666/
这是我的代码 14 20 {"Confirm Email"} 21 在第 17 行我得到错误 Type '{ pathname: string; user: { em
这是我的代码 14 20 {"Confirm Email"} 21 在第 17 行我得到错误 Type '{ pathname: string; user: { em
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 8 年前。 为什么 KeyEvent.getKeyText(0).substrin
我正在尝试 Rust 的新 wasm32-unknown-unknown 目标,我在调用数学函数(例如 sin、cos、exp、atan2)时遇到问题。 cargo .toml: [package]
当我为 spring-boot 创建启动项目时,我在 pom 文件中收到此错误。这只是为了创建一个基本的 Spring Boot 项目 Project build error: Invalid pac
我已经订阅了我想要传输的数据。但不知何故它不起作用。我收到此错误: The property pipe is not available for type "OperatorFunction" 这是我
运行以下查询时。select * from surgerys where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-M
我在运行存储过程时遇到以下异常: com.microsoft.sqlserver.jdbc.SQLServerException:不支持从 UNKNOWN 到 UNKNOWN 的转换。 过程定义如下:
我尝试运行以下代码。顺便说一句,我对 python 和 sklearn 都是新手。 import pandas as pd import numpy as np from sklearn.linear
我已经阅读了关于未知类型的官方文档,但我很难真正理解它是如何工作的。 人们可以在文档中读到:“在没有首先断言或缩小到更具体的类型之前,不允许对未知进行任何操作。” 但如果我有这个功能: const f
我正在尝试在Mac OS中设置Hadoop 2.6.0 我正在关注这篇文章: http://hadoop.apache.org/docs/r2.4.0/hadoop-project-dist/hado
配置 Nexus docker 注册表和代理“dockerhub-proxy”后,如下所述: https://help.sonatype.com/repomanager3/formats/docker
我收到此错误 - “ValueError:未知标签类型:'unknown'” 我已经在网上搜索但无法摆脱这个错误,顺便说一句,我是 python 的新手:) 我的数据有 5 行 22 列,最后一列是标
使用 SHA256 摘要标识符 拉取图像失败 最佳答案 不幸的是,这是 DockerHub 删除 Docker 1.9 守护进程的向后兼容性的副作用。当使用 Docker 1.10 推送图像时,较旧的
我是 postgresql 的新手,正在尝试使用全文搜索 to_tsvector但是我遇到了错误。 SQL 和错误 SELECT to_tsvector('english', 'The quick b
每当我这样做时 npm run watch ,第一次编译工作正常 - 但经过几次编译后,我最终会得到这个错误: 95% emitting unnamed compat pluginError: UNK
在一个新的 Angular 应用程序中,我收到以下错误:Error from chokidar : Error: UNKNOWN: unknown error, watch我已经删除并重新安装 nod
使用 Typescipt 4.x.x 我写了一些代码来实现其他语言 Elm/Rust/Haskell 中常用的 Maybe/Option 类型。 我想写一个可以接受映射类型的通用函数 type MyM
const submitted = useSelector((state) => state.post.submitted) 对于上面的状态。我得到错误: (参数)状态:未知对象的类型为“未知”。 这
我正在尝试将多架构 docker 镜像推送到 docker hub 并遇到错误(在 https://github.com/docker/distribution/issues/3100 处打开了 do
我是一名优秀的程序员,十分优秀!