Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.147.252] |
|
Сообщ.
#1
,
|
|
|
Всем Привет! Шарящие в Perl помогите. Есть задание:
1. Разработать программу, которая обращается к HTTP-серверу и получает от него опции: - самого сервера; - указанного преподавателем информационного ресурса. (Файл options.pl) 2. Разработать программу, которая обращается к серверу методами GET,POST, HEAD получает заданный в запросе информационный ресурс (или его заголовок) и сохраняет в отдельных файлах в виде HTML-документов как сам ресурс, так и заголовки ответа. (файл resource.pl) Установила Apache, ActivePerl. Кидаю лабы в С/users/userName, запускаю - запускается с косяками. Сама в Perl не шарю, помогите исправить ошибку! options.pl #!/usr/bin/perl use IO::Socket; $server_port = 80; $host = 'localhost'; while (1) { $client_socket = IO::Socket::INET->new("$host:$server_port") or die "can\'t create socket: $!"; print "Connect to HTTP - server: OK\n\n"; print "Enter: 1. ' * ' - to get server options\n"; print " 2. resource adress - to get resource optins\n\n"; print "URL: "; chomp($url = <STDIN>); $data = "OPTIONS ".$url." HTTP/1.0\n\n" ; print $client_socket $data; while (<$client_socket>) { print; } close($client_socket); <STDIN>; } resource.pl #!/usr/bin/perl use IO::Socket; $server_port = 80; $host = 'localhost'; while (1) { $client_socket = IO::Socket::INET->new("$host:$server_port") or die "Can\'t create socket: $!"; print "enter url: "; chomp($input = "index.html"); print "1 - GET\n"; print "2 - POST\n"; print "3 - HEAD\n"; print "enter variant: "; chomp($menu = <STDIN>); if ($menu == 1) { $met = "GET http://localhost/".$input." HTTP/1.0\n\n"; } elsif($menu == 2) { $met = "POST http://localhost/".$input." HTTP/1.0\n\n"; } elsif($menu == 3) { $met = "HEAD http://localhost/".$input." HTTP/1.0\n\n"; } else { next; } print $client_socket $met; while ($message=<$client_socket>) { $str.=$message; } $temp=$str; $temp=~/\A([\S\s]+)(?=\r\n\r\n)/mi; print $temp; open F,">header.html"; print F $temp; close F; # $temp=~s/\A([\S\s]+)(?=\r\n\r\n)//g; open F,">body.html"; print F $temp; close F; close($client_socket); } |