Нужно ли пересоздавать новый сокет каждый раз, когда мне нужно что-то отправить на сервер или что-то получить? - PullRequest
0 голосов
/ 20 мая 2018

В приведенном ниже примере в цикле while,

http://www.avajava.com/tutorials/lessons/how-do-i-make-a-socket-connection-to-a-server.html

В клиентском классе он продолжает воссоздание объекта сокета.Правильный ли этот подход?Не могу ли я повторно использовать 1 сокет?

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class TestClientSocket {

    public static void main(String args[]) throws IOException {
        final String host = "localhost";
        final int portNumber = 81;
        System.out.println("Creating socket to '" + host + "' on port " + portNumber);

        while (true) {
            Socket socket = new Socket(host, portNumber); //THIS HERE ISN'T GOING TO BE SLOW ??
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

            System.out.println("server says:" + br.readLine());

            BufferedReader userInputBR = new BufferedReader(new InputStreamReader(System.in));
            String userInput = userInputBR.readLine();

            out.println(userInput);

            System.out.println("server says:" + br.readLine());

            if ("exit".equalsIgnoreCase(userInput)) {
                socket.close();
                break;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...