Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

javaでサーバプログラムを作っているんですが・・・・・・

すいません
JAVAでお絵かきチャットをつくっているんですが

キャンパスのほうで、座標データをArrayListに入れておくっているんですが、

BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());

ObjectInputStream reader = new ObjectInputStream(bis);

って打っているんですが
ObjectInputStream reader = new ObjectInputStream(bis);
の処理でスレッドの動作が止まっています。

この記述方法じゃいけないんでしょうか?

7

回答

79483

閲覧

7件の回答

評価

0

データが送られてくるのを待ってるんじゃないの。

評価

0

すいません
ちょっと文章が足りなかったです


この処理自体はスレッドでまわしているんですが、
受信待ち状態になるのに
whileを用意しているんですが
まずそこまで行っていません


記述の仕方には問題ありませんよね?
system.out.println("ここまで")
などの言葉を入れて調べたところ

BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());

system.out.println("ここまで1");

ObjectInputStream reader = new ObjectInputStream(bis);
system.out.println("ここまで2");

while(!=socket.close)
 {
    system.out.println("到着");
    処理
 }


とやると
「ここまで1」としか表示されていませんでした。
二つ目のsystem.out.printlnまで処理が進んでいません


これってどういうことなのでしょうか?
記述の仕方がおかしいのですか?
それとも前の回答のように
処理を待っているだけなのでしょうか?


評価

0

>処理を待っているだけなのでしょうか?

そうです。
「受信待ちのためのループ」なんかいらん。
「通信を1回だけで終わらせないためのループ」なら必要かもしれんがな。

>while(!=socket.close)

これ、コンパイラ通ってるのか?
close()の意味、わかってんのか?

評価

0

>コンパイラとってるのか?
通ってます

while(){
送信処理のメソッドの飛ばす

そこで終わっていたらclose()してます。
そのあとrunが終わるはずです


>処理まってるだけじゃねぇ
だったらこのソースだったらwhile()には
入ってると思うんですけど

評価

0

systemが小文字。
while(!=socket.close)→while(!=socket.close())

評価

0

>通ってます

ウソだあ。:-D

だいたい、close()は、判定のためのメソッドじゃないよ。

>入ってると思うんですけど

入らないよ。
送信側のストリームが閉じられるまで、
受信側のストリームは生成されません。

評価

0

不良社員さん
すいませんでした
あなたの言ったとおりでした
できました


クライアント側の送信の処理を書いていませんでした。
本当にご迷惑おかけしました

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。