私はx11vncを使用しており、そのための単純なクライアントを開発したいと考えています。したがって、作業は次のとおりです。
- ソケットから情報を受け取る
- 情報を送る
- 次のデータを受信する
- 別の情報を送信する
や。。など。
したがって、たとえば、次の単純なコードを使用しています。
LineNumberReader lnr = new LineNumberReader(new InputStreamReader(socket.getInputStream()));
String test = null;
try {
test = lnr.readLine();
System.out.println(test);
test = lnr.readLine();
System.out.println(test);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
System.exit(0);
エラーなしで取得したサーバーからの最初のメッセージ(最初のreadLine)。次のメッセージは空であり(またはreadLineの行ターミネーターがありません)、無限ループが発生しています。lnr.ready()が機能しません。
では、ソケットからのデータに「\ n」、「\ r」、「\ r \ n」がない場合や、ソケットバッファーが空の場合、どうすればソケットから読み取ることができますか?