使用套接字用于FTP服务器,但客户端不接收输出

时间:2015-04-17 20:19:53

标签: java sockets ftp

我正在尝试创建一个非常基本的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不要看。

1 个答案:

答案 0 :(得分:1)

在所有通信线路的末端需要CR / LF对。见RFC959

  

文件传输协议遵循Telnet的规范   通过控制连接进行所有通信的协议。以来   用于Telnet通信的语言可以是协商选项,   接下来两节中的所有引用都将是" Telnet   语言"以及相应的" Telnet行尾代码"。目前,   可以将这些视为NVT-ASCII和< CRLF>。没有其他   将引用Telnet协议的规范。