Compare commits

..

No commits in common. 'parseRequest' and 'master' have entirely different histories.

  1. 7
      src/main/java/ru/molokoin/Connection.java
  2. 74
      src/main/java/ru/molokoin/InputReader.java
  3. BIN
      target/classes/ru/molokoin/Connection.class
  4. BIN
      target/classes/ru/molokoin/InputReader.class

7
src/main/java/ru/molokoin/Connection.java

@ -3,7 +3,6 @@ package ru.molokoin;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.net.Socket; import java.net.Socket;
@ -14,15 +13,13 @@ import java.util.Date;
* - Подключение вынесено в отдельный поток, чтобы обеспечить возможность подключения к серверу множества клиентов * - Подключение вынесено в отдельный поток, чтобы обеспечить возможность подключения к серверу множества клиентов
*/ */
public class Connection extends Thread{ public class Connection extends Thread{
//public BufferedReader in; public BufferedReader in;
public InputStream in;
public BufferedWriter out; public BufferedWriter out;
//public BufferedReader console; //public BufferedReader console;
public Connection(Socket socket) throws IOException{ public Connection(Socket socket) throws IOException{
System.out.println("Соединение с клиентом установлено ..."); System.out.println("Соединение с клиентом установлено ...");
//in = new BufferedReader(new InputStreamReader(socket.getInputStream())); in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in = socket.getInputStream();
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//console = new BufferedReader(new InputStreamReader(System.in)); //console = new BufferedReader(new InputStreamReader(System.in));
Thread threadConn = new Thread(this); Thread threadConn = new Thread(this);

74
src/main/java/ru/molokoin/InputReader.java

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

BIN
target/classes/ru/molokoin/Connection.class

Binary file not shown.

BIN
target/classes/ru/molokoin/InputReader.class

Binary file not shown.
Loading…
Cancel
Save