2011-01-31 21 views
0

ソケットを使用してバイト[]を交互に送受信する必要があります。これを行う方法 ? 使用するラッパーは何ですか? これはOKか私はソケットを使用してバイト[]を交互に送受信する

public boolean SendMessage(byte[] data){ 
     try{ 
      socket = new Socket(ipAddress, port); 
      OutputStream socketOutputStream = (OutputStream) socket.getOutputStream(); 
      socketOutputStream.write(data); 
      socket.close(); 
      return true; 
     } 
     catch(Exception exc){ 
      System.err.println(exc.getStackTrace()); 
     } 
     return false; 
    } 

、この関数の呼び出しの後、私は>ように受信したバイトを受信するための関数を呼び出すと、再び=を送る迅速な方法でこれを行うことができます。これを行うより速い方法がありますか?

+0

注:メソッド名は大文字で始めるべきではありません。クラス名のように見えるかもしれませんが、そうではありません。 「Java(TM)プログラミング言語のコード表記規則」の「命名規則」(http://www.oracle.com/technetwork/java/codeconventions-135099.html#367)を参照してください。 – Progman

答えて

1

読み込みと書き込みに同じソケットを使用し、2つのアプリケーションを同期して、一方が他方の書き込みを読み込むようにします。逆も同様です。

0

送信/受信のたびに新しいソケットを作成して閉じてしまうのではなく、同じソケットを使用する必要があります。

2つのスレッドを作成します。 1つはSenderThread、もう1つはReceiverThreadです。 SenderThreadはソケットを作成し、出力ストリームを取得します。実行する必要があるかどうかを示すフラグを含むwhileループを持つことができます。

Eg: while (running){ 

同じことをReceiverThreadで行う必要があります。ソケットと入力ストリームを作成します。 whileループを実行します。

whileループでは、ストリームにデータを書き込んだり読み込んだりするロジックを提供することができます。

スレッドがハーモニーで動作するように、waitとnotifyを使用してください。

関連する問題