0

サーバークラスを実装しています。これで、コマンド ライン引数として hostName と portNumber を渡そうとすると、ArrayIndexOutOfBound Exception が発生します。

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

public class EchoServer{
public static void main(String[] args) throws IOException{
    String hostName = args[0];
    int portNumber = Integer.parseInt(args[1]);

if(args.length!=2){
System.err.println("Usage: java EchoClient <hostName> <portNumber>");
System.exit(1);

}



try(
    Socket echoSocket = new Socket(hostName,portNumber);
    PrintWriter out = new PrintWriter(echoSocket.getOutputStream(),true);
    BufferedReader in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

) {
    String userInput; 
    while((userInput = stdIn.readLine())!=null){
        out.println(userInput);
        System.out.println("echo: " +in.readLine());
    }
}   catch (UnknownHostException e) {
            System.err.println("Don't know about host " + hostName);
            System.exit(1);
     }  catch (IOException e) {
         System.err.println("Couldn't get I/O for the connection to " +
            hostName);
         System.exit(1);
 }
}

}

4

0 に答える 0