Java поддерживает постоянное соединение TCP

Я пытаюсь отправить несколько данных с сервера на клиент, используя TCP. Я хочу создать только одно TCP-соединение для всей сессии. Как мне это сделать?

Я пробовал код со следующим потоком, но программа останавливается после получения первого ответа.

Сторона клиента

1.create sockets and streams
2.send request for first data
3.wait for response from server
4.send next request <----------- server doesn't seem to handle this request
5.get next response from server

Серверная сторона

1.Create server socket and wait for incoming connections
2.Parse incoming request
3.Send response
4.Parse next request
5.Send next response

Я не закрываю сокеты и потоки с обеих сторон, пока сеанс жив.

Обновить Вот мой фрагмент кода: Клиент

public void processRequest() throws Exception {

    Socket tempSocket = new Socket("0.0.0.0", 6782);

    String requestLine = "This is request message 1" + CRLF;

    DataOutputStream outToServer = new DataOutputStream(tempSocket.getOutputStream());            
    BufferedReader inFromServer = new BufferedReader(new InputStreamReader(tempSocket.getInputStream())); 

    outToServer.writeBytes(requestLine + CRLF);

    String serverResponse = inFromServer.readLine();
    System.out.println(serverResponse);

    requestLine = "This is request message 2" + CRLF;

    outToServer.writeBytes(requestLine + CRLF);

    serverResponse = inFromServer.readLine();
    System.out.println(serverResponse);

    outToServer.close();
    inFromServer.close();
    tempSocket.close();
}

сервер

public void processRequest() throws Exception {

    createConnections();

    String requestLine = inFromClient.readLine();
    System.out.println(requestLine);

    String responseLine = "This is the response to messsage 1";
    outToClient.writeBytes(responseLine + CRLF);

    requestLine = inFromClient.readLine();
    System.out.println(requestLine);

    responseLine = "This is the response to message 2";
    outToClient.writeBytes(responseLine + CRLF);
}

Выход

Клиент:

This is the response to messsage 1
This is the response to message 2
BUILD SUCCESSFUL (total time: 1 second)

Сервер:

This is request message 1

null
java.net.SocketException: Broken pipe

Ответы на вопрос(1)

Ваш ответ на вопрос