|
|
|
@ -1,6 +1,7 @@
@@ -1,6 +1,7 @@
|
|
|
|
|
package ru.molokoin; |
|
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStreamReader; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Нить чтения входящего от клиента потока данных |
|
|
|
@ -14,18 +15,41 @@ public class InputReader extends Thread{
@@ -14,18 +15,41 @@ public class InputReader extends Thread{
|
|
|
|
|
@Override |
|
|
|
|
public void run(){ |
|
|
|
|
String line; |
|
|
|
|
|
|
|
|
|
StringBuilder header = new StringBuilder(); |
|
|
|
|
Boolean f = true; |
|
|
|
|
InputStreamReader isr = new InputStreamReader(connection.in); |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
while (!connection.in.ready()) ; |
|
|
|
|
//while (!connection.in.ready()) ;
|
|
|
|
|
while (!isr.ready());//ожидание открытия потока
|
|
|
|
|
index++; |
|
|
|
|
System.out.println("Номер запроса: " + index); |
|
|
|
|
StringBuilder header = new StringBuilder(); |
|
|
|
|
StringBuilder body = new StringBuilder(); |
|
|
|
|
Boolean isHeader = true; |
|
|
|
|
//Boolean isBody = false;
|
|
|
|
|
while (connection.in.ready()) { |
|
|
|
|
line = connection.in.readLine(); // ждем сообщения с сервера
|
|
|
|
|
while (isr.ready()) { |
|
|
|
|
//прочитали значение
|
|
|
|
|
char c = (char)connection.in.read(); |
|
|
|
|
//проверка eof (конец файла)
|
|
|
|
|
if (c == (-1)) { |
|
|
|
|
break;//разорвали цикл, можно закрыть сокет
|
|
|
|
|
} |
|
|
|
|
header.append(c); |
|
|
|
|
//проверка переноса строки
|
|
|
|
|
if (c == '\n') { |
|
|
|
|
/** |
|
|
|
|
* первый перенос строки свидетельствует об оканчании header/ |
|
|
|
|
* после первого переноса можно считывать тело запроса, если это post-запрос |
|
|
|
|
*/ |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
line = isr.readLine(); // ждем сообщения с сервера
|
|
|
|
|
if(isHeader){ |
|
|
|
|
if (line != null){ |
|
|
|
|
header.append(line); |
|
|
|
|