Bir TCP soketine dayalı bir FTP programı yazmam gerekiyordu ve FTPServer'ı yaratan bazı yardımları takdir ediyorum. değişkenler -class FTPServer.java
için TCP soketine bağlı FTP programı
socket, input, output, EXIT_CMD, PUT_CMD, GET_CMD
yöntem vardır:
İşteFTPServer(), receiveFile(), sendFile(), run(), main()
şimdiye kadar benim kodudur:
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);
}
}
}
Bunun olabileceğini biliyorum Dağınıklık. Ama beni buraya getiren şey buydu.
Yayında belirli bir soru göremiyorum. Sadece işini senin için bitirmemizi mi istiyorsun? –
Gerçekten [RFC114] (https://tools.ietf.org/html/rfc114) 'de tanımlandığı gibi [Dosya Aktarım Protokolü] (https://en.wikipedia.org/wiki/File_Transfer_Protocol) mu demek istiyorsunuz? Sonra bu yazdığınızdan biraz daha fazla (ya da oldukça fazla) fazla alır. –
FTPServer.java ve FTPClient.java'yı oluşturmam gerekiyor ... ama, FTPServer.java sınıfını bitirmeme yardım edebilecek biri var mı diye merak ediyordum? Oradan FTPClient sınıfını nasıl yapacağımı anlayabileceğimi düşünüyorum. TCP soketine dayalı bir istemci/ana bilgisayar FTP programı ... Bu benim ilk gönderiim ve gerçekten daha fazla nasıl netleşeceğini bilmiyorum. – Banger2448