Хелпикс

Главная

Контакты

Случайная статья





$paddr = sockaddr_in($remote_port, $internet_addr);



$paddr = sockaddr_in($remote_port, $internet_addr);

 

Всё теперь осталось только подрубиться, что мы и делаем спомощью функции connect(), имеющий формат:

 

connect (NAME, $target);

 

где:

NAME – имя сокета для подключения;

$target – адрес куда подключать в специальномформате, в нашем случае $paddr.

 

После того, как мы подключили сокет. Ясно, что его надо бы попользоватьнемножко, что мы и делаем с помощью функции send(), имеющийформат:

 

send (NAME, $data, $flags);

 

где:

NAME – имя сокета

$data – что послать

$flags – флаги, опции сокета – мы оставляем пустым.

Ну а дальше по стандарту, как и в предыдущем варианте, получаем ответ.

 

Теперь, я надеюсь, тебе ясно как работать с потоковыми сокетамипоговорим о датаграммных сокетах и о создании соответствующихклиентов. В принципе они не так уж сильно отличаются от своихсобратьев в TCP, вот «простой» способ создания сокета:

 

UDP-клиент

#подключаем Perl

#! /usr/bin/perl

#Подключаем наш компонент для работы с сокетом

use IO:: Socket;

 

$remote_host = " 127. 0. 0. 1";

$remote_port = 1000;

 

$socket = IO:: Socket:: INET-> new(

# к чему хотим присоединиться, удалённый адрес

PeerAddr => $remote_host,

# удалённыйпорт

PeerPort => $remote_port,

# протокол

Proto=> " udp" )                  

or die " Can't connect to $remote_host: $remote_port\n";

 

# посылаем что-то удалённому серверу

print $socket " Hello, man! \n";

 

#закрываем сокет

close($socket);

 

Комментарий:

Как видно теперь при создании сокета, мы убираем полеType и меняем тип протокола, убрали Type так как еслииспользуется протокол udp, то сокеты автоматом –датаграммные и всё необходимое сделает сам конструктор –в этом и упрощение такого метода. Теперь мы ничего непринимаем - это особенность протокола udp. Но, в принципе, можно поставить инструкции на приём, но не факт, что мы дождёмся ответа от сервера.

 

Теперь рассмотрим тоже самое, но в грубом методе:

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.