Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FTP客户端/服务器登录验证_Java_Sockets_Server_Ftp_Client - Fatal编程技术网

Java FTP客户端/服务器登录验证

Java FTP客户端/服务器登录验证,java,sockets,server,ftp,client,Java,Sockets,Server,Ftp,Client,我有一个关于用Java创建FTP客户端的问题 我创建了一个应该可以工作的FTP客户端,但是当我在终端上运行它时,它会停止,等待一段时间,然后返回一条错误消息。客户端必须连接到服务器IP地址,该地址需要用户名和密码才能进行身份验证和登录。但是,我无法让登录工作 我不必创建FTP服务器,我们机构中已经有一个服务器需要连接 这是迄今为止我为FTP客户端编写的代码: import java.io.*; 导入java.net。*; 类FTPC { 公共静态void main(字符串[]args)引发异常

我有一个关于用Java创建FTP客户端的问题

我创建了一个应该可以工作的FTP客户端,但是当我在终端上运行它时,它会停止,等待一段时间,然后返回一条错误消息。客户端必须连接到服务器IP地址,该地址需要用户名和密码才能进行身份验证和登录。但是,我无法让登录工作

我不必创建FTP服务器,我们机构中已经有一个服务器需要连接

这是迄今为止我为FTP客户端编写的代码:

import java.io.*;
导入java.net。*;
类FTPC
{
公共静态void main(字符串[]args)引发异常
{
字符串选项;
DataInputStream in=新的DataInputStream(System.in);
sockets=newsocket(“10.246.251.39”,Integer.parseInt(args[0]);
System.out.println(“菜单”);
System.out.println(“1.SEND”);
System.out.println(“2.RECEIVE”);
FTPC ftp=新的FTPC();
while(true)
{
option=in.readLine();
如果(选项等于(“1”)){
System.out.println(“接收到发送命令”);
ftp.sendfile;
}
否则,如果(选项等于(“2”)){
System.out.println(“接收到的命令”);
ftp.接收文件;
}
}
}
公共void sendfile(套接字)引发异常
{
插座ssock=s;
DataInputStream in=新的DataInputStream(System.in);
DataInputStream cin=新的DataInputStream(ssock.getInputStream());
DataOutputStream cout=新的DataOutputStream(ssock.getOutputStream());
无法写入(“接收”);
字符串filename=in.readLine();
System.out.println(“读取文件”+文件名);
cout.writeUTF(文件名);
文件f=新文件(文件名);
FileInputStream fin=新的FileInputStream(f);
int-ch;
做
{
ch=fin.read();
cout.writeUTF(String.valueOf(ch));
}而(ch!=-1);
fin.close();
System.out.println(“文件已发送”);
}
public void receivefile(套接字)引发异常
{
插座ssock=s;
DataInputStream in=新的DataInputStream(System.in);
DataInputStream cin=新的DataInputStream(ssock.getInputStream());
DataOutputStream cout=新的DataOutputStream(ssock.getOutputStream());
无法写入(“发送”);
字符串filename=in.readLine();
cout.writeUTF(文件名);
System.out.println(“接收文件”+文件名);
文件f=新文件(文件名);
FileOutputStream fout=新的FileOutputStream(f);
int-ch;
做
{
ch=Integer.parseInt(cin.readUTF());
如果(ch!=-1)四次写入(ch);
}而(ch!=-1);
System.out.println(“收到的文件…”);
fout.close();
}
} 

这里有很多问题:

  • 登录对话完全丢失(命令
    USER
    PASS

  • 您正在建立单个套接字并将其用于命令和数据,但FTP使用控制连接(通常在端口21上)用于命令,使用数据连接(通常在端口20上)用于数据传输

  • SEND
    RECEIVE
    都不是FTP命令。相反,请使用
    STOR
    RETR
    。(见附件。)

  • 您的客户端缺少
    CWD
    LIST
    命令。这些都是必要的


  • 这里有很多问题:

  • 登录对话完全丢失(命令
    USER
    PASS

  • 您正在建立单个套接字并将其用于命令和数据,但FTP使用控制连接(通常在端口21上)用于命令,使用数据连接(通常在端口20上)用于数据传输

  • SEND
    RECEIVE
    都不是FTP命令。相反,请使用
    STOR
    RETR
    。(见附件。)

  • 您的客户端缺少
    CWD
    LIST
    命令。这些都是必要的


  • 请注意,
    DataInputStream
    readLine
    方法已被弃用,应替换为
    BufferedReader
    readLine
    方法。为什么
    receivefile
    正在写入
    FileOutputStream
    sendfile
    正在从
    FileInputStream
    读取?有什么我遗漏了吗?嘿,左撇子,这是因为当你收到一个文件时,你是从服务器获取文件的,当你发送一个文件时,你是在输入文件并将其发送到服务器。这个代码甚至远不是一个正确的FTP客户端。阅读FTP协议规范。请注意,
    DataInputStream
    readLine
    方法已被弃用,应替换为
    BufferedReader
    readLine
    方法。为什么
    receivefile
    写入
    FileOutputStream
    ,而
    sendfile
    正在从
    文件输入流
    ?有什么我遗漏了吗?嘿,左撇子,这是因为当你收到一个文件时,你是从服务器获取文件的,当你发送一个文件时,你是在输入文件并将其发送到服务器。这个代码甚至远不是一个正确的FTP客户端。请阅读FTP协议规范。