2017-04-04 13 views
1

コマンドライン引数に"-l"またはサーバが含まれていない場合、クライアントとして動作できるテキストメッセージングプログラムをJavaで作成しようとしていますコマンドライン引数に"-l"が含まれている場合。JavaサーバスレッドのエラーMac端末(Eclipseファイル)でコマンドライン引数を使用する

このエラーでは、私はサーバーの動作に取り組んでいます。サーバーの

コマンドライン引数は、エラーの

java DirectMessengerServer -l 6004 

スクリーンショットのようになります。DirectMessageServer.java

Terminal error screenshot

コード

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.PrintWriter; 
import java.net.ServerSocket; 
import java.net.Socket; 

public class DirectMessengerServer { 
    public static void main(String args[]) throws IOException { 
     Thread Server = new Thread() { 
      public void run() { 
       int port = Integer.parseInt(args[0]); 
       int port_number1 = Integer.valueOf(args[0]); 
       ServerSocket server_socket = null; 
       Socket client_socket; 
       String message1; 
       for (int i = 0; i < args.length; i++) { 
        if (args[i] == "-l") { 
         try { 
          System.out.println("Listening for connections.."); 
          client_socket = server_socket.accept(); 
          BufferedReader reader = new BufferedReader(new InputStreamReader(client_socket.getInputStream(), "UTF8")); 
          PrintWriter output = new PrintWriter(client_socket.getOutputStream(), true); 
          String input_line = reader.readLine(); 
          System.out.println("Received from client: "); 
          System.out.println(input_line); 
          output.println(input_line); 
         } catch (Exception e) { 
          System.out.println(e.getMessage()); 
         } 
         //server.close(); 
        } 
       } 
      } 
     }; 
     Server.start(); 
    } 
} 

私の質問はどのようにありますエラーを解決するために、そして/またはそれが01と言うときに実際に何を意味するか例外、または"numberformatexception"がエラーの意味は?

答えて

0

-lを整数に解析しようとしています。これは問題です。

java DirectMessengerServer -l 6004 

あなたの最初の引数は文字列型で、2番目は整数です。

これはまさにスクリーンショットのエラーを示しています。あなたは、引数のループを持っていますが、引数の数を補正し、あなたが使用していないと述べたこと、あなたの質問に、問題を解決する理由ポート番号

ため-l

args[1]ため

args[0]私はわかりませんポート番号変数とあなたのコードロジックを少し改善することができます。

関連する問題