Шаг 154.
Язык программирования Java.
Первый пример использования класса ServerSocket

На этом шаге мы приведем первый пример использования класса ServerSocket

Наша программа будет ждать подключение клиента. Она получит сообщение от клиента и переотправит это сообщение, после чего закончит свою работу.

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {
        // try с ресурсами, чтобы корректно закрыть потом сокет
        try (ServerSocket socket = new ServerSocket(Constants.PORT)) {

            System.out.println("Server started");

            // Ждем подключения клиента
            Socket client = socket.accept();

            System.out.println("Client connected");

            // После подключения получаем необходимые потоки
      DataInputStream inputStream = new DataInputStream(client.getInputStream());
      DataOutputStream outputStream = new DataOutputStream(client.getOutputStream());

            // Получаем сообщение
            String text = inputStream.readUTF();

            System.out.println("Client sending: " + text);

            // Переотправляем полученное сообщение
            outputStream.writeUTF(text);
            outputStream.flush();

            // Обязательно закрываем потоки
            inputStream.close();
            outputStream.close();

            // И Обязательно закрываем клиентский сокет
            client.close();

            System.out.println("Server shutdown");
        }
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы

На следующем шаге мы рассмотрим способ одновременной обработки нескольких соединений

Предыдущий шаг Содержание Следующий шаг