2016-04-23 6 views

Antwort

1

Sie ein Protokoll Kommunikation entwickeln müssen, ist dies eine Art von Dialekt in was Ihr Server und Ihr Kunde sprechen.

ich habe entworfen das einfachste Kommunikationsprotokoll überhaupt für Sie, das nur 2 Befehle hat.

Consist in 2 einfachen Befehlen und seine Bedeutung:

mkdir -

Ausfahrt ein Verzeichnis, in dem Remote-Server erstellen - die Sitzung schließen

bedeutet dies, dass Sie schreiben müssen 2 Programme (Server und Client), die Ihr hervorragendes Kommunikationsprotokoll implementieren.

Sie können mit diesem Code beginnen, der tatsächlich 2 Befehle sendet/empfängt und vorgibt, den Befehl auszuführen und die Sitzung zu schließen.

Seite Server:

import java.net.*; 
import java.io.*; 

public class Server 
{ 
    static ServerSocket serverSocket; 
    static Socket   socket; 
    static BufferedWriter writer; 
    static BufferedReader reader; 

    public static void main(String args[]) 
    { 
     try 
     { 
      System.out.println("Hola mundo"); 
      serverSocket = new ServerSocket(12345); 
      socket = serverSocket.accept(); 
      reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
      writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 
      while(true) 
      { 
       String command = reader.readLine(); 
       if(command.contains("mkdir")) 
       { 
        System.out.println("Creating a new directory " + command); 
        // put yoour code to create a directory with the params 
       } 
       else if(command.equals("exit")) 
       { 
        System.out.println("Exiting the program"); 
        break; 
       } 
      } 
     } 
     catch(Exception err) 
     { 

     } 
    } 
} 

Client-Seite:

import java.net.*; 
import java.io.*; 

public class Client 
{ 
    static Socket socket; 
    static BufferedWriter writer; 
    static BufferedReader reader; 
    public static void main(String args[]) 
    { 
     try 
     { 
      System.out.println("Connecting to the server"); 
      InetSocketAddress address = new InetSocketAddress("127.0.0.1", 12345); 
      socket = new Socket(); 
      socket.connect(address); 
      reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
      writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 

      // creating folder 
      System.out.println("Creating remote folder"); 
      writer.write("mkdir newFolder\r\n"); 
      writer.flush(); 


      // closing server 
      System.out.println("Sending exit command"); 
      writer.write("exit\r\n"); 
      writer.flush(); 

      socket.close(); 
     } 
     catch(IOException err) 
     { 
      System.out.println(err.getMessage()); 
     } 
    } 
} 

Jetzt ist Ihre Herausforderung ist wirklich der Ordner machen wird erstellt, wenn der Befehl mkdir den Server erreicht.

Compilation:

javac Client.java 

javac Server.java 
+0

Hallo Leute, danke für die Hilfe. –

0

Auf dem Server können Sie Files#createDirectory() verwenden, um ein Verzeichnis auf dem Dateisystem zu erstellen. Sie können Daten verwenden, die vom Client übergeben werden, um den Namen des Verzeichnisses zu ermitteln.

Hier ist ein Link auf die Javadoc: https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-

Hier ist ein Link in Java Tutorials von Oracle, das ein Beispiel beinhaltet: https://docs.oracle.com/javase/tutorial/essential/io/dirs.html#create