Подключение к ServerSocket с локальной машины

Я довольно плохо знаком с Java, и в настоящее время я экспериментирую с сокетами и буферами.

Я хотел попробовать создать соединение из одного локального Java-приложения и другого. Я использую ServerSocket и Socket.

Серверное приложение имеет поток, который прослушивает соединения:

    public void run() {

    try{

        ServerSocket serverSock = new ServerSocket(62666);

        while(doRun){

            Socket sock = serverSock.accept();
            BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));

            InfoReader.gui.writeToTextArea(reader.readLine() + "\n");



            reader.close();

        }
    }catch(IOException e){
        e.printStackTrace();
    }

}

"Клиент" просто отправляет строку на сервер (что ж, должно быть, но я не могу заставить ее работать):

try{
        Socket sock = new Socket("127.0.0.1",62666); 
        PrintWriter writer = new PrintWriter(sock.getOutputStream());
        writer.print("Connection works!");
    }catch(IOException e){
        e.printStackTrace();
    }

Я уверен, что порт открыт и уже перенаправлен на локальную машину. Я проверил на http://canyouseeme.org/.

Я также попытался использовать мой внешний IP-адрес в качестве IP-адреса сокета в клиенте. Это тоже не сработало.

Любая помощь приветствуется:).

Майк.

1 ответ

Решение

Хорошо, тогда как ответ, так что вы можете закрыть вопрос;-)

Добавьте flush() и close() в Writer.

Надеюсь, это поможет.:-)

Другие вопросы по тегам