Далее рассмотрим более подробно протокол TCP, который является надежным протоколом потоковой передачи байтов с установлением логического соединения. Надежность и удобство использования данного типа протокола являются приятным дополнением.
Такие особенности протокола обеспечивают применение сокетов TCP наравне с обычными дескрипторами файлов и каналами. После открытия сокета TCP в него можно отправлять данные с помощью функций print() или syswrite() и получать из него данные с использованием оператора <>, функции read() или sysread().
Клиент эхо-сервера TCP.
Начнем с разработки небольшой клиентской программы TCP. В задачу данной клиентской программы входит инициализация соединения с удаленной службой. Краткое описание этого процесса уже было приведено ранее. Напомним, что клиент TCP выполняет, в основном, следующие действия.
Вызов функции socket() для создания сокета. С помощью функций socket() клиент создает потоковый сокет в домене INET (сокращение от Internet) по протоколу TCP.
Вызов функции connect() для подключения к другому участнику соединения. С помощью функции connect() клиент формирует требуемый адрес назначения и подключает к нему сокет.
Выполнение ввода-вывода по сокету. Клиент вызывает различные операций ввода и вывода Perl для обмена информацией по сокету.
Закрытие сокета. После завершения ввода-вывода клиентская программа может закрыть сокет с помощью функции close().
В примере ниже показан простой клиент для службы «echo» TCP. Эта служба применяется по умолчанию на многих хостах, UNIX. Она ожидает входящий запрос на соединение, принимает его, а затем возвращает назад каждый полученный байт, повторяя его, как шаловливый ребенок. Это продолжается до тех пор, пока клиент не закроет соединение.