У меня есть следующий код:InputStreamReader сокета не читает запрос POST полностью
ServerSocket ss = new ServerSocket(2351);
Socket s = ss.accept();
InputStreamReader in = new InputStreamReader(s.getInputStream());
writer = new PrintWriter(s.getOutputStream());
writer.flush();
cbuf = new char[buf_length];
in.read(cbuf);
inputLine = new String(cbuf);
Я побежал четыре подряд отправляет на мой сервер, и когда я отлаживать код выше он правильно работает в три раза. В другой раз следующий мой inputLine, что читается из сокета:
POST /record HTTP/1.1
Content-type: application/soap+xml;charset="utf-8";action=""
Accept: application/soap+xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: JAX-WS RI 2.1.5-b03-
Host: localhost:2351
Connection: keep-alive
Content-Length: 2197
И содержание всего 2197 вместо пробелов содержание 2197 длины. Это действительно странно, и я застрял. Любая помощь приветствуется. Благодарю.
Звучит как проблема на стороне клиента - пожалуйста, разместите соответствующий код оттуда. Кроме того, вам действительно нужно учитывать фактические байты, прочитанные в вызове 'in.read (cbuf)', вместо того, чтобы предполагать, что он действительно заполняет буфер. – Perception
Что вы видите, если вы исследуете поток данных с помощью Wireshark? Если данные передаются как пробелы, проблема возникает у клиента. –