![]() |
Работа с сокетами,мать их))
Вот самый обычный сокед:
#!usr/bin/perl use strict; use Socket; use constant DEFAULT_ADDR => '127.0.0.1'; use constant PORT => 21; use constant IPPROTO_TCP => 6; my $my_addr = shift || DEFAULT_ADDR; my $upak_addr = inet_aton($my_addr); my $dest = sockaddr_in(PORT,$upak_addr); socket(SOCK,PF_INET,SOCK_STREAM,IPPROTO_TCP) or die "Can`t open this socket!"; connect(SOCK,$dest); print <SOCK>; Если соединение успешно,то просто выводит содержимое дескриптора сокета)).Но вот что можно запросить с помощью сокетов(какую информацию),и каким функциями пользоваться,кроме read().Или может есть у кого-то примеры работы на перле с сокетами ? |
Запросить - хм...имхо доволоьно странная постановка вопроса...запросить можно толькто то, что может отдать сервак :))
Кроме read() - sysread() примеры - http://phreak.nkoort.ru/source - пример работы с асечным серваком. |
пример , тупо читает страницу
Код:
#!"C:\xampp\perl\bin\perl.exe" |
Круто)))).Спасибо вам ребятки ^___________^.А что означают ваот эти две строчки:
$in_addr = (gethostbyname("localhost"))[4]; $server_addr = pack( $sockaddr_in, AF_INET, $port, $in_addr ); Остальное вроде понятно=).А хотя... exit(0) это означает немедленный выход ?Смахивает на sleep() ) ЗЫ: Только у меня страницу не выводит...локалхост.А по идее должен разве?) оО,ты забыл в скрипте поставить директиву my,тобишь глобальные переменные интерпретатор потребывал =_=,и вот насчёт директивы use strict не знаю,мне помогла)).Терь всё работает,ещё раз спасибо ))))) |
Код:
$in_addr = (gethostbyname("localhost"))[4];Код:
$sockaddr_in = 'S n a4 x8';Код:
$server_addr = pack( $sockaddr_in, AF_INET, $port, $in_addr );надеюсь понятно обьяснил :) ps: а exit(0) обычный выход из программы added: замени localhost на google.com а в send поправь на send (SOCK, "GET / HTTP/1.0\nhost:google.com\n\n", 0); и увидишь результат |
Вроде всё понял.Думаю вот,че с этими сокетами делать )))
|
| Время: 13:10 |