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

Класс Socket

Класс Socket из пакета java.net представляет собой клиентскую точку соединения. Он используется для установки связи с удалённым сервером по протоколу TCP. В первом параметре конструктора мы передаём имя хоста или IP-адрес сервера, во второй - номер порта, к которому нужно подключиться. После создания объекта сокета можно получить входной поток через метод getInputStream и выходной поток через метод getOutputStream, чтобы читать и отправлять данные. По завершении работы сокет следует закрыть методом close.

Синтаксис

Socket socket = new Socket(String host, int port); Socket socket = new Socket(InetAddress address, int port);

Пример

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

import java.net.Socket; public class Main { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8080); boolean res = socket.isConnected(); System.out.println(res); socket.close(); } catch (Exception e) { System.out.println("Connection failed"); } } }

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

true

Пример

Давайте получим информацию о удалённом хосте и порте, к которому подключён сокет:

import java.net.Socket; public class Main { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8080); System.out.println(socket.getInetAddress().getHostAddress()); System.out.println(socket.getPort()); socket.close(); } catch (Exception e) { System.out.println("Connection failed"); } } }

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

"127.0.0.1" 8080

Пример

Давайте отправим строку на сервер и получим ответ через потоки ввода-вывода сокета:

import java.net.Socket; import java.io.PrintWriter; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8080); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream()) ); out.println("12345"); String res = in.readLine(); System.out.println(res); socket.close(); } catch (Exception e) { System.out.println("Connection failed"); } } }

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

"12345"

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

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