2012-03-08 8 views
1

200ミリ秒ごとに値のセット(〜25)を送信しようとしていますが、プロジェクトは現在、各値に対してソケット(同じポート)に接続する必要があるように設定されています。メッセージを表示して切断します。ソケットプログラミングJava

つまり、200ミリ秒ごとに25回の接続と切断が行われます。

このような接続頻度は高いですか?これには限界がありますか?ここ

は、擬似コード

func(ByteBuffer packet) 
{ 
------- 

if (packet != null) 
    { 
     synchronized(tcpClientConnection) 
     { 
      if (tcpClientConnection.connect()) 
      { 
       retval = tcpClientConnection .send(buf); 
      } 

      tcpClientConnection.disconnect(); 
     } 
    } 
----- 
} 
+2

サーバーの設定方法は?データ項目ごとにconnect/recv/disconnectシーケンスを '必要とする '場合、選択肢はありません。しかし、接続/再接続/切断が可能な場合は、@ learningJavaが示唆していることを – KevinDTimm

+0

とすれば、おそらくこれで逃げることができますが、MPIの使用をお勧めします。 – Mikhail

+0

@Mishraあなたの提案に感謝します、私は確かにそれを見てください –

答えて

1

はあなたのやって何であなたの接続を包むようにしてくださいです。

class... 
    establish connection 
    do your work/updates/etc 
    disconnect connection 

それとも、単にあなたがローカル変数に更新すると、あなたのプログラムが実行されたとき、あなたは一度にすべてのデータをアップロードすることができますしたいすべての値を格納し使用することができるような何か。

これは私が最近同様の問題に近づいてきた2つの方法です。

+0

あなたの迅速な返信をありがとう。 私の場合、私は200ミリ秒ごとに25の数字を生成するサービスを持っています。これらの数字はリアルタイムで送信する必要があります。 問題は、このサービスが数週間または数か月間停止しないことです。 –

+0

接続を開いたままにして、指示を与えるのを待つプロセスを作成することは可能ですか?サービスを制御している場合は、タイムアウトがないことを確認する必要があります。接続を開いたままにしておくだけのxスレッドを作成してください。おそらくプログラミングの習慣が悪いかもしれませんが、仕事を終わらせるかもしれません。 –

+0

私は今、値のセットの接続を開いて、それを送信し、各値の開閉の代わりに切断しています。それはうまく動作します あなたの助けをたくさんありがとう –

関連する問題