回答編集履歴

2 誤字

kaputaros

kaputaros score 1501

2015/05/18 14:20  投稿

> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
>    at TCPClient.java.TCPClient.main(TCPClient.java:16)
> このような文が出るのですが、どう修正すればいいのか分かりません。
「java.lang.ArrayIndexOutOfBoundsException」
このExceptionは何を表すかは調べましたか?
知らない場合は、まず何を表しているかを調べてみてください。
とても初歩的でよく起こりがちな例外です。
「(TCPClient.java:16)」
TCPClient.java の 16行目でExceptionが発生していると教えてくれています。
この行を見て、なぜArrayIndexOutBoudsExceptionが発生しているかを考えてみてください。
まずは、聞くより調べましょう。
TCPClient.java の 16行目は
> DataOutputStream out =new DataOutputStream( s.getOutputStream());
となっています。
s は14行目で new Socket() をしており、引数に args[1] と serverPort を渡しています。
args は mainメソッドを実行する際に、引数としてパラメタを渡したものが入ってくるようになっていますが、実行するときに、パラメタには何を渡していますか?
また、index(argsの[]内) が 1 になっていますが、2つ以上パラメタを渡していますか?
きちんと指定してあげないと、RuntimeException(実行時例外) が発生してしまいます。
---
> ちなみに、TCPServer.javaを実行すると、
> ちなみに、TCPServer.javaを実行すると
> Listen socket:Address already in use: JVM_Bind
> となります。
TCPClint.javaとポート番号が同じために起こっているのだと思います。
http://ziddy.japan.zdnet.com/qa4156701.html
実行時例外が発生して、ポート番号7896でnewしたインスタンスをつかみっぱなしになっているのかも?
サーバーを再起動してみると良いかもしれません。
1 追加

kaputaros

kaputaros score 1501

2015/05/18 14:19  投稿

> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
>    at TCPClient.java.TCPClient.main(TCPClient.java:16)
> このような文が出るのですが、どう修正すればいいのか分かりません。
「java.lang.ArrayIndexOutOfBoundsException」
このExceptionは何を表すかは調べましたか?
知らない場合は、まず何を表しているかを調べてみてください。
とても初歩的でよく起こりがちな例外です。
「(TCPClient.java:16)」
TCPClient.java の 16行目でExceptionが発生していると教えてくれています。
この行を見て、なぜArrayIndexOutBoudsExceptionが発生しているかを考えてみてください。
まずは、聞くより調べましょう。
---
TCPClient.java の 16行目は
> DataOutputStream out =new DataOutputStream( s.getOutputStream());
となっています。
s は14行目で new Socket() をしており、引数に args[1] と serverPort を渡しています。
args は mainメソッドを実行する際に、引数としてパラメタを渡したものが入ってくるようになっていますが、実行するときに、パラメタには何を渡していますか?
また、index(argsの[]内) が 1 になっていますが、2つ以上パラメタを渡していますか?
きちんと指定してあげないと、RuntimeException(実行時例外) が発生してしまいます。
きちんと指定してあげないと、RuntimeException(実行時例外) が発生してしまいます。
---
> ちなみに、TCPServer.javaを実行すると、
> Listen socket:Address already in use: JVM_Bind
> となります。
TCPClint.javaとポート番号が同じために起こっているのだと思います。
http://ziddy.japan.zdnet.com/qa4156701.html
実行時例外が発生して、ポート番号7896でnewしたインスタンスをつかみっぱなしになっているのかも?
サーバーを再起動してみると良いかもしれません。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る