2016-04-23 14 views
1

私はJavaでクライアントサーバーアプリケーションを作成しています。ある時点で、私は自分のPCクライアントがソケット経由で自分のPCサーバーにディレクトリを作成する必要があります。誰か助けてくれますか?クライアントマシンのJavaソケットを使用してサーバーマシンにディレクトリを作成する方法は?

+0

あなたはこれまでに何をしようとしていますか?あなたのコードを教えてください。 –

答えて

1

あなたは通信プロトコルを設計する必要があり、これは中方言の一種でありますあなたのサーバーとクライアントが話すものです。

私はという最も簡単な通信プロトコルをの2つのコマンドしか持っていません。

2つの単純なコマンドとその意味で構成されています

ます。mkdir - リモートサーバに

終了をディレクトリを作成する - これはあなたが書かなければならないことを意味

セッションを閉じますあなたの素晴らしい通信プロトコルを実装する2つのプログラム(サーバーとクライアント)。

このコードから実際に2つのコマンドを送受信し、コマンドの実行をふりかえりセッションを終了することができます。

サーバー側:

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) 
     { 

     } 
    } 
} 

クライアント側:

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()); 
     } 
    } 
} 

今、あなたの挑戦は、mkdirコマンドがサーバに到達したとき、本当にフォルダが作成されるようにすることです。

編集:

javac Client.java 

javac Server.java 
+0

こんにちは、助けてくれてありがとう。 –

0

Files#createDirectory()を使用すると、ファイルシステムにディレクトリを作成できます。クライアントから渡されたデータを使用して、ディレクトリの名前を判別することができます。ここで

は、Javadocのへのリンクです:https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-

は、ここでの例が含まれてOracleのJavaチュートリアル内のリンクです:https://docs.oracle.com/javase/tutorial/essential/io/dirs.html#create

関連する問題