我正在尝试创建一个非常基本的Java FTP服务器。
处理传入套接字,接受它并将其转换为客户端线程的代码似乎工作得很好,但由于某种原因,当我尝试发送欢迎消息时,数据看起来并不像是客户端
// outputstreamwriter for socket
out = new OutputStreamWriter(socket.getOutputStream(),"UTF-8");
// function for sending data
private void send(String s) {
try {
out.write(s,0,s.length());
out.flush();
} catch (IOException e) {
System.out.println("Exception during send(): " + e);
}
System.out.println("> " + s);
}
我在我的控制台中看到它正在运行并尝试发送欢迎消息,但FileZilla(我用来连接的FTP客户端)通常位于:
"Connection established, waiting for welcome message..."
===
修改
欢迎信息非常基本: 发送(“220欢迎使用FTP服务器”);
我正在尝试仅包含相关代码,因为这里发布的内容太多了。 (启动每个客户端线程的侦听服务器线程等)重点是它在代码中没有任何问题(即客户端线程带有接受的套接字就绪),然后当我发送数据时出现FileZilla不要看。
答案 0 :(得分:1)
在所有通信线路的末端需要CR / LF对。见RFC959:
文件传输协议遵循Telnet的规范 通过控制连接进行所有通信的协议。以来 用于Telnet通信的语言可以是协商选项, 接下来两节中的所有引用都将是" Telnet 语言"以及相应的" Telnet行尾代码"。目前, 可以将这些视为NVT-ASCII和< CRLF>。没有其他 将引用Telnet协议的规范。