2011-10-24 6 views
1

私のスペルは間違いありません、私は最高の努力をするつもりです。ソケットとスレッドを使用しているサーバーからのメッセージを待ちます

ソケットを使用してサーバーと通信するアプリケーションを作成しています。私の学校のチャットプロトコルを使ったチャットアプリです。サーバーはいつでも私にメッセージを送ることができます。私は「いつでも」主張する。私はスレッドのwhile(true)ループを作成することについてしかし、それは動作していないようです。

要約すると、サーバーからのメッセージを待っています。

すべてのヘルプが評価されました。

答えて

0

私はabt javaを話していると思います。 サーバから読み込むだけであれば、1つのスレッドが必要です。 InputStreamReaderはメッセージを受け取るまで待機します。しかし、結果を表示するGUIをいくつか使用していてスレッドが1つしかない場合、プログラムは死んでいるように見えますが、待機時間中に実行されることはありません。 したがって、読書部を別のスレッドに入れる必要があります。例えば

class Reader implements Runnable{ 
    Scanner scan=null; 
    public Reader(Scanner scan){ 
    this.scan=scan; 
    new Thread(this).start(); 
} 
public void run(){ 
    while(true){ 
     putToGui(scan.next()); 
    } 
} 
} 
+1

ええ、実際にしばらく(真)が働いていました。サーバーはクラップスをやっていただけだった。ご回答有難うございます ;) –

関連する問題