以下のプログラムをコンパイルして実行したら
Exception in thread "main" java.lang.IllegalArgumentException: Paraneter(s):<Server> <Word> [<Port>]
at TCPEchoClient.main(TCPEchoClient.java:9)
というメッセージが表示されました。
このメッセージの意味が全く分かりません。
分かる方がいらっしゃいましたら教えてください。
お願いします。
本来なら
Received:****(←****は自分が指定した文字列)
となるはずなんですが…
このプログラムはTCPを使ってエコーサーバと通信するクライアントです。
import java.net.*;
import java.io.*;
public class TCPEchoClient{
public static void main(String[] args)throws IOException{
if((args.length < 2)||(args.length > 3))
throw new IllegalArgumentException("Parameter(s):<Server><Word>[<Port>]");
String server = args[0];
byte[] byteBuffer = args[1].getBytes();
int servPort = (args.length == 3) ? Integer.parseInt(args[2]) : 7;
Socket socket = new Socket(server,servPort);
System.out.println("Connected to server...sending echo string");
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
out.write(byteBuffer);
int totalBytesRcvd = 0;
int bytesRcvd;
while(totalBytesRcvd < byteBuffer.length){
if(bytesRcvd = in.read(byteBuffer, totalBytesRcvd, byteBuffer.length - totalBytesRcvd) == -1)
throw new SocketException("Connection closed prematurely");
totalBytesRcvd += bytesRcvd;
}
System.out.println("Received: " + new String (byteBuffer));
socket.close();
}
}
No.1ベストアンサー
- 回答日時:
> if((args.length < 2)||(args.length > 3))
> throw new IllegalArgumentException("Parameter(s):<Server><Word>[<Port>]");
ってところで例外が発生してるんでしょうね。
実行時のコマンドライン引数が2個か3個じゃないとダメ、
という仕様になっているのでしょう。
『java TCPEchoClient <Server> <Word> [<Port>]』というように。
192.168.0.1に対して"test"をポート12345で送るなら、
$ java TCPEchoClient 192.168.0.1 "test" 12345
とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
インタフェイス実装と抽象クラ...
-
Socketの接続のタイムアウトを...
-
randomで
-
プログラミングの問題です。大...
-
"try{}catch(){}"文で"close()"...
-
java 継承の問題で分からないと...
-
Javaでlog4jを使ってログ出力を...
-
Processing :指定フォルダ内の...
-
所持金の計算式とその表示の仕方
-
JSP/Servletのパラメータの受け...
-
現在時刻をYYYY-MM-DDThh:mm:ss...
-
privateなフィールドは継承され...
-
Javaで日本語の出力が文字化けする
-
コンストラクタの引数の中のnew?
-
【java】同ディレクトリ別ファ...
-
ArrayList でスタックを
-
複素数の計算するクラスを足せ...
-
javaで特定の文字列から特定の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
javaで特定の文字列から特定の...
-
Socketの接続のタイムアウトを...
-
Java プログラム public class ...
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
コマンドライン引数の*(アフ...
-
【初心者です】javaで平均値を...
-
Javaで日本語の出力が文字化けする
-
(大至急)JavaでATMもどきを作成
-
コンストラクタの引数の中のnew?
-
Java 最大公約数 gcd
-
randomで
-
C# DatagridviewにExcelシート...
-
replaceAllが使えない場合の取...
おすすめ情報