-1

1つのTCPソケットから別のソケットにデータを転送するプログラムを作成したい。2つの異なるプログラムがサーバーに接続されており、サーバーを介して通信したい。

実際には、サーバーを介して2つのゲームを通信させたいので、ゲームのプレーヤーにとって透明に見えるサーバーを作成したいと思います。一方の側からもう一方の側に来るものはすべて転送されます。

4

1 に答える 1

0

あなたはあなたの問題が何であるかを言いませんでした、しかし私は推測をします。コンテンツをバッファに読み込み、コンテンツを取得した場合は、バッファ全体を出力ストリームに書き込みます。実際に読み取られたバイト数のみを書き込む必要があります。

byte[] b = new byte[BUFSIZE];
int chunkSize;
while(true) {
  try {
    while( (chunkSize = is.read(b)) != -1) {
      os.write(b, 0, chunkSize);
      os.flush();
    }
  } catch (IOException ex) {
    Logger.getLogger(socketProducer.class.getName()).log(Level.SEVERE, null, ex);
  }
}
于 2012-12-21T12:03:34.443 に答える