ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Perl] Модуль Socket. Не правильно работает ф-я connect
  #1  
Старый 23.11.2009, 23:09
Аватар для FunkyBoy
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

Репутация: 0
По умолчанию [Perl] Модуль Socket. Не правильно работает ф-я connect

Есть такой скрипт:
Код:
#!/usr/local/bin/perl -w

print "Content-Type: text/html\n\n";
print "Соединяемся при помощи модуля Socket<br>";
use Socket; #Используем модуль Socket

$port = 10000;
$host = "4.88.167.248";
socket( SOCKET, PF_INET, SOCK_STREAM, (getprotobyname('tcp'))); # Создаём сокет
my $socket_addr = sockaddr_in( $port, inet_aton($host) ); # адрес сокета
if (connect( SOCKET, $socket_addr)) {$result = 'Удачное соединение'}
else {$result = 'Не удалось соединиться'}
print "$result";
close SOCKET;
Проблема в том, что connect всегда возвращает истину, независимо от того получилось соединиться или не получилось.
Кто-нибудь сталкивался с такой проблемой?
 
Ответить с цитированием

  #2  
Старый 24.11.2009, 15:59
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

У Вас, видимо, перл неправильный
У меня все ок:
Код:
#!/usr/bin/perl
use warnings;
use strict;
use Socket;
my($host,$port) = ('127.0.0.1',8697);
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr) or die 'Cannot connect';
Код:
goofy:~ $ perl ./sock.pl
Cannot connect at ./sock.pl line 10.
 
Ответить с цитированием

  #3  
Старый 24.11.2009, 17:29
Аватар для FunkyBoy
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

Репутация: 0
По умолчанию

Цитата:
Сообщение от biophreak  
У Вас, видимо, перл неправильный
Я впринцепе так и думал, пробовал разные версии Perl (5.10.1 и 5.8.9) на обоих такая проблема.
Может быть даже дело в моей системе.

Можете скинуть ссылку, от куда вы брали perl?
 
Ответить с цитированием

  #4  
Старый 25.11.2009, 10:17
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Э, ну я его ставил еще когда систему устанавливал, так что с репозитария дебиана.
 
Ответить с цитированием

  #5  
Старый 25.11.2009, 10:18
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Кстати, а мой пример у Вас работает?
 
Ответить с цитированием

  #6  
Старый 25.11.2009, 13:38
Аватар для FunkyBoy
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

Репутация: 0
По умолчанию

тоже выпоняется без ошибки
 
Ответить с цитированием

  #7  
Старый 25.11.2009, 16:54
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

FunkyBoy, попробуйте заюзать IO::Socket::INET, например, так:
Код:
#!/usr/bin/perl
use warnings;
use strict;
use IO::Socket::INET;

my ($host, $port) = ('127.0.0.1', 8697);
my $sock = IO::Socket::INET->new (
  'PeerAddr' => $host,
  'PeerPort' => $port,
  'Proto' => 'tcp',
  'Timeout' => 20
) or die "Connection error: $@\n";
print "Connected\n";
Что выведет скрипт?
 
Ответить с цитированием

  #8  
Старый 25.11.2009, 23:57
Аватар для FunkyBoy
FunkyBoy
Новичок
Регистрация: 18.04.2007
Сообщений: 4
Провел на форуме:
4633

Репутация: 0
По умолчанию

Цитата:
Сообщение от krypt3r  
Что выведет скрипт?
Скрипт выдаёт: Connected
Модуль IO::Socket::INET сам использует Socket, по этому такой результат.
 
Ответить с цитированием

  #9  
Старый 26.11.2009, 07:50
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Странный у вас какой-то перл
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
md5 Badak Расшифровка хешей 12 08.08.2009 21:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ