Java ソケット プロトコルの問題: サーバーがクライアントに応答できない
提供されたコード スニペットでは、サーバーがクライアントに応答できないという問題が発生します。クライアントのリクエストに応えます。これを解決するには、Java ソケット プロトコルの複雑さを理解する必要があります。
問題:
指定されたコードは、クライアントが送信するクライアント/サーバー通信を確立しようとします。サーバーへのメッセージ。ただし、サーバーはメッセージを受信しても、メッセージを出力することも応答することもありません。
解決策:
この問題を解決する鍵は、メッセージがネットワーク経由で送信されるようにすることです。ソケット ストリームはプロトコルのフォーマット ガイドラインに従っています。この場合、サーバーがメッセージを正しく処理するには、各メッセージの最後にキャリッジ リターン (r) とそれに続くライン フィード (n) が必要です。
実装:
問題を修正するには、クライアント コードを次のように変更します:
string = "end"; out.write(string + "\r\n"); // Add "\r\n" to the string out.flush();
同様に、サーバーが適切な応答を送信するには、次の変更を加えます:
out.write("to end" + "\r\n"); // Add "\r\n" to the string out.flush(); out.close();
これらの調整を組み込むことにより、クライアントとサーバーのメッセージの両方がプロトコルのフォーマット要件に準拠し、サーバーがクライアントのリクエストを正常に受信、処理、応答できるようになります。
以上がJava サーバーがクライアントのリクエストに応答しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。