私は、TCPソケットに基づいてFTPプログラムを作成することになっています。変数級FTPServer.java
についてはTCPソケットに基づくFTPプログラム
は以下のとおりです。
socket, input, output, EXIT_CMD, PUT_CMD, GET_CMD
方法は以下のとおりです。ここ
FTPServer(), receiveFile(), sendFile(), run(), main()
は私のコードは、これまでのところです:
import java.net.*;
import java.io.*;
public class FTPServer extends Thread
{
private Socket socket = null;
private DataInputStream input = null;
private DataOutputStream output = null;
final private String EXIT_CMD = "exit";
final private String PUT_CMD = "put";
final private String GET_CMD = "get";
public FTPServer(Socket socket)
{
this.socket = socket
input = new DataInputStream(socket.getInputStream());
output = new DataOutputStream(socket.getOutputStream());
public void start()
{
if(thread == null)
{
thread = new Thread(this);
thread.start;
}
}
}
public void receiveFile()
{
//get file name
//write file
File file = new File(fileName);
FileOutputStream outFile = new FileOutputStream(file);
String line;
int ch;
do
{
line = intput.readUTF();
ch = Integer.parseInt(line);
if(ch != -1);
ch = Integer.parseInt(line);
if(ch != -1);
outFile.write(ch);
} while(ch != -1);
outFile.close();
}
public void sendFile()
{
output.writeUTF("READY");
FileInputStream inFile = new FileInputStream(file);
int ch;
do
{
ch = inFile.read();
output.writeUTF(String.valueOf(ch));
} while(ch != -1);
inFile.close();
}
public void run()
{
while(true)
{
String cmd = input.readUTF();
if(cmd.equals(PUT_CMD)
{
receiveFile();
}
if(cmd.equals(GET_CMD)
{
sendFile();
}
if(cmd.equals(EXIT_CMD))
{
System.exit(0);
}
}
}
public static void main(String[] args) throws Exception
{
//check parameters
if(args.length != 1)
{
System.out.println("Usage: java FTPServer <port>");
return;
}
int port = Integer.parseInt(args[0]);
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Waiting...");
while(true)
{
//open a socket for a client
Socket socket = serverSocket.accept();
System.out.println("Connected to client");
FTPServer server = new FTPServer(socket);
}
}
}
私はこれがあるかもしれない知っています混乱。しかし、それが私をここに連れてきました。
投稿に特定の質問が表示されません。あなたは私たちにあなたの仕事を仕上げるように頼んでいますか? –
[RFC114](https://tools.ietf.org/html/rfc114)で定義されている[ファイル転送プロトコル](https://en.wikipedia.org/wiki/File_Transfer_Protocol)を実際に意味しますか?それから、あなたが書いたものよりも少し(あるいはむしろかなりたくさん)かかる。 –
FTPServer.javaとFTPClient.javaを作成する必要がありますが、誰かがFTPServer.javaクラスを終了するのを手伝ってもらえませんか?そこから、私はFTPClientクラスの実行方法を理解できると思います。これは、TCPソケットに基づいたクライアント/ホストFTPプログラムです...これは私の最初の投稿であり、私は本当にそれ以上のことを明確にする方法を知らない。 – Banger2448