Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpSoInr 278 of 299 menu
◀ ▶

Введение в сокеты в Kotlin

TCP-соединение связывает две программы через сеть. На стороне сервера класс ServerSocket слушает номер порта на машине; клиент обращается к паре "хост:порт", чаще всего к localhost при локальной проверке. После установки связи обе стороны читают и пишут один непрерывный поток байтов - текст удобно передавать построчно через обертки над потоками ввода-вывода.

В учебном примере сервер и клиент живут в одном main: прослушивание порта уходит в отдельный Thread, а клиент подключается к тому же процессу. Порт 0 при создании ServerSocket означает «любой свободный»; фактический номер берут из localPort. Сокеты закрывают через use, чтобы освободить ресурс после обмена:

import java.net.ServerSocket import java.net.Socket fun main() { ServerSocket(0).use { server -> val port = server.localPort Thread { server.accept().use { peer -> peer.getInputStream().bufferedReader() .use { input -> peer.getOutputStream() .bufferedWriter().use { output -> val line = input.readLine() output.write("reply: $line") output.newLine() output.flush() } } } }.start() Socket("localhost", port).use { client -> client.getOutputStream().bufferedWriter() .use { output -> client.getInputStream().bufferedReader() .use { input -> output.write("hello socket") output.newLine() output.flush() println(input.readLine()) } } } } }

Клиент отправляет одну строку hello socket, сервер отвечает строкой с префиксом reply:. В консоли появляется ответ сервера - весь обмен укладывается в один запуск без внешних библиотек.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить