РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1161 of 1163 menu

Класс ServerSocket

Класс ServerSocket используется для создания серверного сокета, который прослушивает определенный порт и принимает входящие соединения от клиентов. В конструктор мы передаем номер порта, который сервер будет слушать. Метод accept блокирует выполнение программы до тех пор, пока не подключится клиент, и возвращает объект Socket для обмена данными с подключившимся клиентом.

Синтаксис

ServerSocket serverSocket = new ServerSocket(port); Socket socket = serverSocket.accept();

Пример

Давайте создадим простой сервер, который слушает порт 8080 и отправляет клиенту приветственное сообщение:

import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Main { public static void main(String[] args) { try (ServerSocket serverSocket = new ServerSocket(8080)) { System.out.println("Server started on port 8080"); try (Socket socket = serverSocket.accept(); PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) { out.println("Hello, client!"); System.out.println("Client connected"); } } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода (в консоли сервера):

"Server started on port 8080" "Client connected"

Пример

Давайте создадим сервер, который принимает несколько подключений подряд и для каждого клиента выводит его адрес:

import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Main { public static void main(String[] args) { try (ServerSocket serverSocket = new ServerSocket(8080)) { for (int i = 0; i < 3; i++) { try (Socket socket = serverSocket.accept()) { System.out.println("Client: " + socket.getInetAddress()); } } } catch (IOException e) { e.printStackTrace(); } } }

Результат выполнения кода (при подключении трех клиентов):

"Client: /127.0.0.1" "Client: /127.0.0.1" "Client: /127.0.0.1"

Смотрите также

  • класс Socket,
    который представляет клиентский сокет
  • класс InetAddress,
    который представляет IP-адрес
  • метод getByName,
    который возвращает адрес по имени хоста
  • метод getLocalHost,
    который возвращает локальный адрес
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить