08.11.2003, 01:21
|
# 1
|
|
Junior Member
Регистрация: 10.06.2003
Адрес: Новосибирск
Сообщения: 53
|
Глюки и Перл
Скрипт на перле выдает такую ошибку
Bad arg length for Socket:  ack_sockaddr_in, length is 0, should be 4 at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/Socket.pm line 373.
Вот собственно и сам скрипт.
Цитата:
#!/usr/bin/perl
use Socket;
use CGI param;
$action=param("add");
$page=param("0");
$name=param("Perl");
$mail=param("no@email.ru");
$city=param("Nsk");
$text=param("Test");
$B1=param("%CE%F2%EF%F0%E0%E2%E8%F2%FC");
$remote="http://www.xxx.ru HTTP/1.0";$port="80";
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') };
$iaddr = inet_aton($remote);
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket()";
connect(SOCK, $paddr);
$data="action=$action&page=$page&name=$name&mail=$mail&city=$city&text =$text&B1=$B1";
send SOCK,"POST /cgi-bin/xx.pl HTTP/1.0\n",0;
send SOCK,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.1; Windows NT 5.2)\n",0;
send SOCK,"Referer: www.xxx.ru\n",0;
send SOCK,"Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\n",0;
send SOCK,"Accept-Language: en;q=1.0\n",0;
send SOCK,"Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\n",0;
send SOCK,"Accept-Encoding: gzip, deflate\n",0;
send SOCK,"Content-Length: ".length($data)."\n",0;
send SOCK,"Content-Type: application/x-www-form-urlencoded\n",0;
send SOCK,"Connection: Keep-Alive\n\n",0;
send SOCK,$data,0;
while(<SOCK>){$ret="$ret"."$_";}
close(SOCK);
print "Готово!\n";
|
Где глюк?
|
|
|