Ответ
В Java-экосистеме активно используются следующие сетевые протоколы:
1. HTTP/HTTPS — для веб-коммуникаций (REST API, SOAP).
URL url = new URL("https://api.example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
int responseCode = conn.getResponseCode();
Почему: HTTPS обеспечивает шифрование поверх TLS, что критично для безопасности данных.
2. TCP/UDP — транспортные протоколы.
- TCP (надежный, с установкой соединения) — для
ServerSocket/Socket. - UDP (быстрый, без гарантий доставки) — для
DatagramSocket.
3. WebSocket — для двусторонней связи в реальном времени (javax.websocket или библиотеки типа Spring WebSocket).
4. FTP/SFTP — передача файлов (часто через Apache Commons Net).
5. SMTP/POP3/IMAP — работа с электронной почтой (JavaMail API).
6. DNS — разрешение доменных имён через InetAddress.getByName("hostname").
7. RMI (Remote Method Invocation) — удалённый вызов методов в чистой Java (java.rmi).
Выбор протокола зависит от требований:
- Надёжность → TCP
- Скорость и допустимы потери → UDP
- Веб-сервисы → HTTP/HTTPS
- Реальное время → WebSocket