|
|||
TCP - клиентСтр 1 из 6Следующая ⇒
Сокеты бывают 2-х типов: датаграммные и потоковые. Потоковые служат, преимущественно, для отправки данныхи приёму оных. Они как бы создают иллюзию соединенияи базируются на протоколе TCP. Датаграммные же сокетыпохоже больше на письмо – вам никто не даст гарантию, дошлоли оно вообще, базируются они на протоколе UDP.
Сокеты в Perl можно создавать 2-мя путями – простым и сложным.
Простой базируется на использовании структуры IO:: Socket:: INET. Эта структура упрощает доступ к низкоуровневым компонентам.
Вначале, рассмотрим создание TCP-клиента.
TCP - клиент #подключаем Perl #! /usr/bin/perl
#Подключаем наш компонент для работы с сокетом use IO:: Socket;
$remote_host = " www. e1. ru"; $remote_port = 80;
$socket=IO:: Socket:: INET-> new( # к чему хотим присоединиться, удалённый адрес PeerAddr=> $remote_host, # удалённыйпорт PeerPort=> $remote_port, # протокол Proto=> " tcp", # тип сокета - потоковый Type=> SOCK_STREAM) or die " Can't connect to $remote_host: $remote_port\n";
#после соединения посылаем #что-то удалённому серверу print $socket " Hello, dude! \n";
#принимаем ответ сервера. @answer = < $socket>; #выводим на экран ответ от сервера print @answer; #закрываем сокет close($socket);
Комментарий: Итак, первое, что мы делаем в листинге - это включаем компонентIO:: Socket, который и упростит нам работу. Далее определяемпеременные $remote_host и $remote_port – удалённый адрес объектаи порт. Потом вызываем конструктор компонента IO:: Socket:: INET, где последовательно определяем все поля и, наконец, совершаемдействие – посылаем что-то серверу и записываем ответ в массив. Почему массив? Просто, чтобы записать весь ответ, а не первую строчку.
Теперь поговорим о сложном пути создания клиентского сокета в Perl – это его ручная сборка.
|
|||
|