2017-02-20 9 views
0

シンプルなserversocketプログラム(クライアントとサーバーの両方)があります。 クライアントとサーバーの両方で、データの受信と転送を継続するために、私はwhile(true){}(Infinite Loop)を持っています。JAVAの非同期クライアント/ソケットプログラミングでPUSHメカニズムを実装する方法は?


が受け入れるか、データのみが使用可能なときにデータを送るもので、この無限ループを交換する方法はありますか?例えば、私のクライアントは、データが利用可能であるだけ とき切断するためにデータを送信する必要がある意味


。同様に、クライアントがデータを送信すると、私のサーバーはデータを受信する必要があります 。この無限ループに実装なく連続転送すること及びデータを受信する必要があるべきではありません。

+0

かなりわかりませんio /) – Fildor

答えて

0

周期的に実行できる実行スレッドで無限ループを置き換えてください。あなたが達成しようとしているが、あなたは([NIO]使用するように、それはhttps://docs.oracle.com/javase/8/docs/technotes/guides/を少し聞こえる

ScheduledExecutorService execService = Executors.newScheduledThreadPool(2); 
     execService.scheduleAtFixedRate(()->{ 
     new CLASSNAME.startThread(); //Thread(); 
     }, 0, 5000L, TimeUnit.MILLISECONDS); 
関連する問題