3

Sockets を使用してデバイス サーバーと通信しようとしましたが、オンのときに小さな Java プログラムがハングした後、ターゲット アプリケーションにパケット スニファーを挿入する必要があり、最初のパケットとを含む 2 つのパケットに分割さreadLineれていることがわかりました。次、サーバーが気に入らなかったもの。事前に別のものを追加してこれを修正しました:os.writeBytes("notify\n");notifywriteBytes

os.writeBytes(" ");
os.writeBytes("notify\n");
os.flush();

これは私には少しハックで潜在的に不安定に思えます。なぜ私がこれをしなければならないのか、より良い解決策を教えてください。

乾杯

4

1 に答える 1

2

rawソケット接続を使用する場合、メッセージが個別のチャンクで取得されるとは限りません。実稼働環境では、一度に部分的なメッセージまたは複数のメッセージを受信する可能性があります。

これに対処したくない場合は、プログラマーのこれらの懸念を処理するNettyのようなライブラリの使用を検討する必要があります。

そうは言っても、あなたの問題はおそらくあなたの選択に関係しているというトーマスに同意しますwriteBytes

于 2012-05-14T17:38:10.640 に答える