2012-05-04 6 views
1

問題は、ここではScalaのコードです:スカラ座とJavaのIOとソケットIは、Javaネットプログラミングの例を、以下、それぞれのjava-Scalaではクライアントサーバーを書くことにしたんだ

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


public class Client{ 
    public static void main(String[] args){ 

     try{ 
      Socket s = new Socket("127.0.0.1",8189); 

      BufferedReader in = new BufferedReader(
       new InputStreamReader(System.in)); 

      PrintWriter out = new PrintWriter(
       s.getOutputStream(), true); 

      BufferedReader socketIn = new BufferedReader(
       new InputStreamReader(s.getInputStream())); 

      System.out.println("Enter: to exit"); 
      String resp; 
      String st 
      while(true){ 
       st = in.readLine(); 
       if(st.equals("exit") || st.equals("quit")) break; 
       else{ 
        out.println(st); 
        resp = socketIn.readLine(); 
        System.out.println(resp); 
       } 
      } 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

サーバからの出力:

Spawning 1 
s 

s 

l 
l 
scala 

java 

Javaの出力:

私はちょうど送った文字列を足した Echo (1)を印刷することを期待どこにイム空 Echo (1)応答を受信を見ることができるように、あなたは再タイプはそれが問題ですので、送信previouly文字列を取得するには、「入力」するようになった
Enter: to exit 
s 
Hello! press BYE to exit 

Echo (1): s 
s 
Echo (1): 

Echo (1): s 
l 
Echo (1): 
l 
Echo (1): l 
scala 
Echo (1): l 

Echo (1): scala 
java 
Echo (1): 

Echo (1): java 

Echo (1): some string、私はアイデアがありません。コンソールに印刷して追跡しましたが、何が起こっているのか把握できません。

編集:

予想されるクライアントの出力:予想出力オン

... 
s 
Echo (1): s 
java 
Echo (1): java 

サーバーからの応答を取得するためにenter型を再する必要はありません。

サーバーの出力が既に正常に動作しています。

+1

あなたの質問は最も不明です。期待される出力を実際の出力と同じ形式で追加することをお勧めします。 – EJP

答えて

2

クライアントが最初に接続するときに "Hello!press BYE"を送信しているが、クライアントが実際にこの行を実際には読み取っていないため、混乱しています。あなたが送信したエコーされたメッセージを読むことを期待しているときにクライアントでそれを読んでいるので、あなたのクライアントはいつもエコーを読んでいます。

解決方法:ループを開始する前に、サーバーから「Hello!press BYEを終了する」を削除するか、最初にクライアントに接続するときにそれを読み取ってください。

+0

今、私はそれがうまくいかなかったのを見ます、それはあなたの答えを授与するために19時間かかるでしょう。 – loki

0

私には、俳優に ""を送って "Echo(1):" + ""を返すように見えます。私が入力を数えれば、私は "s"を "Echo(1):s"と見なします。

+0

実際は逆ですが、空のEcho(1)を受け取った文字列を送ったときに、あなたが送った最後の文字列を ""送ってください。 – loki

関連する問題