2011-12-10 20 views
0

私はマルチソケットプログラム(クライアントとサーバーの両方)を実装しようとしています。ちょっとグーグルで行った後、私はRunnableを実装することをお勧めします。今私は、私が作成し、使用する各スレッドは別のクライアント(私が間違っている場合は私を修正する)です。基本的なマルチソケットプログラム

-Whichデータを受け取り、正確なラインがある:

は私が難しいことは2つのことを理解しているのですか?私はこのメソッドが特定のクライアントとの接続を開始するために使用されているので、Server.accept()メソッドではないと思います(前述のように新しいスレッドを作成します)。

- 複数のパケットを受け入れる方法(文字列といいますか)

答えて

2

ちょっとした修正をして、新しいスレッドを作成してstart()で開始すると、新しいクライアントを処理する新しいサーバースレッドになります。

データを受け入れる正確な行はどれですか?

クライアントからのデータを受け入れるには、クライアントの入力ストリームをいくつかの入力ストリームにラップし、次に入力ストリームのそれぞれの読み取り関数を呼び出す必要があります。

void readx(Socket con) 
{ 
    String line=new String(); 
    BufferedReader bin= new BufferedReader(new InputStreamReader(con.getInputStream()); 
    while((line = bin.readLine()) != null) //Read new lines coming from the server 
     System.out.println(line); 
} 

これは一例であり、あなたはDataInputStreamのような他のInputStreamラッパーとそれぞれの読み取り機能を有することができます。

1つ以上のパケットを受け入れるにはどうすればいいですか(それは文字列だとします)?

上記のスニペットは、クライアントがストリーム終了文字を送信するまで、クライアントからのデータを連続して受け入れます(任意の数の行が可能です)。