当前位置: 首页 > 知识库问答 >
问题:

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

羊舌自强
2023-03-14

我正在尝试创建一个非常基本的JavaFTP服务器。

处理传入套接字、接受它并将其转换为客户机线程的代码似乎工作得很好,但由于某些原因,当我尝试发送欢迎消息时,数据似乎没有到达客户机。

// 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服务器”);

我试图只包含相关的代码,因为在这里发布太多了。(监听启动每个html" target="_blank">客户端线程的服务器线程,等等)关键是它在代码中到达这一点时没有任何问题(即客户端线程w/accepted socket ready to go),然后当我发送数据时,FileZilla似乎看不到它。

共有1个答案

郑高驰
2023-03-14

您需要在所有通信线路的末端安装CR/LF对。参见RFC959:

文件传输协议遵循通过控制连接进行的所有通信的Telnet协议的规范。由于用于Telnet通信的语言可能是协商的选项,接下来两节中的所有引用都将引用“Telnet语言”和相应的“Telnet线路结束代码”。目前,人们可能认为这些意味着NVT-ASCII和

 类似资料:
  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • 我正在尝试基于非阻塞NIO消息开发自己的通信库。我已经阅读了1000篇关于它的教程和书中的章节,我认为最后我有了一些可以在几乎没有同时连接的情况下工作的东西。但是当我在服务器端有很多连接共存时,我遇到了一些问题。 我有4个私有方法的典型选择器实现:accept、finishConnect、read和write。我的问题在于前两个:接受和完成连接。 当客户端打开一个新的套接字,并且一个可接受的键唤醒

  • 问题内容: 我正在尝试在服务器和客户端之间进行文件传输,但是工作非常糟糕。基本上需要发生的是: 1)客户端将txt文件发送到服务器(我称为“ quotidiani.txt”) 2)服务器将其保存在另一个txt文件中(“ receive.txt”) 3)服务器运行脚本上对其进行修改并以其他名称保存(“ output.txt”)的脚本 。4)服务器将文件发送回客户端,客户端以相同的名称(final.t

  • 问题内容: 我正在构建一个小型聊天应用程序,其中客户端A希望通过服务器B将某些东西发送到客户端C。首先,这是解决问题的正确方法吗?我能够向服务器发送数据或从服务器接收数据,但仅限于客户端。例如,如果客户端A向服务器B发送数据而客户端C向服务器B发送数据,则我可以将数据发送回服务器A和C就像回显服务器一样。但是我想要的是将来自客户端A的数据通过服务器B转发到客户端C。 以下是服务器代码: 客户端代码

  • 我最近开始尝试使用JavaSockets类在服务器和客户机之间创建双向连接。当我使用客户机套接字地址作为但是当我在 客户端套接字显示连接是通过测试返回true。 然而,在服务器端,代码似乎并没有向前推进 我应该提供代码还是问题明确? 编辑:更多信息。无论我的防火墙处于什么状态,使用外部ip地址从我自己的电脑上远程登录都是有效的。当防火墙打开时,java客户端代码不起作用,抛出 当防火墙关闭时,使用

  • 真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。