Введение в сокеты TCP в Go
Сокет в этой теме держит поток байтов между двумя программами на одном или разных компьютерах. Связь задают адресом хоста и номером порта; протокол TCP гарантирует порядок доставки и надежную передачу без потери фрагментов на уровне канала.
Одна сторона открывает исходящее соединение и пишет в него данные, другая слушает порт и принимает входящий канал. После рукопожатия обе стороны могут читать и писать в общий поток, пока кто-то не закроет связь.
В стандартной поставке Go за такой обмен
отвечает пакет net. Здесь не HTTP
и не UDP: работа идет напрямую с
соединением TCP, без заголовков браузера
и без датаграмм UDP без установки связи.
В этом разделе пройдем клиент, сервер,
чтение строки и ответ в то же соединение,
несколько клиентов с отдельной веткой
на каждое принятие и практику на полных
файлах main.go. Горутины уже
знакомы; для примеров с одним запуском
сервер часто поднимают в фоновой ветке,
а клиент выполняют в main.