サービスへの HTTP 経由のソケット接続があります。このサービスは HTTP/1.0 のみをサポートします。HTTP/1.0 は、応答が送信されるとデフォルトで接続を閉じます。それを可能にするために、このバージョンのプロトコルに追加されたパラメーターがあります - Connection: Keep-alive -。標準では、サービスがこのパラメーターをヘッダーにも追加する必要があると定義しています。これは、応答ヘッダーに含まれていないため発生していません。
ソケットからinputStreamを取得すると、マークがサポートされません。では、同じ接続を再利用して複数の要求/応答を送受信することはできないと安全に想定できますか?
更新 サービスを制御できず、リクエストを手動で作成します。
Socket socket = new Socket("server.com", 11111);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));
writer.write("POST HTTP/1.0\r\n");
writer.write("Host: " + socket.getInetAddress().getHostName() + "\r\n");
writer.write("Content-Length: " + length + "\r\n");
writer.write("Content-Type: text/xml; charset=\"utf-8\"\r\n");
writer.write("Connection: Keep-alive\r\n");
writer.write("\r\n");
writer.write(xmldata);
writer.flush();
List<String> lines = IOUtils.readLines(socket.getInputStream());