Автор Тема: проблема с сокетами  (Прочитано 6351 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 09h

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 82
  • +0/-0
  • 0
    • Просмотр профиля
проблема с сокетами
« : 19 Мая 2006, 01:16:44 »
use Socket;

socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname(\'tcp\'));

$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);

$msg = "\\x05\\x01\\x00";
send (SOCK, "$msg", 0);
sysread(SOCK,$answer_data,1024);
print_data($answer_data);

$msg = "\\x05\\x02\\x00\\x01\\xcd\\xbc\\x93\\x2e\\x09\\xf2";
send (SOCK, "$msg", 0);
sysread(SOCK,$answer_data,1024);
print_data($answer_data);


#FUNCTIONS

sub print_data() { # выводим данные в hex

my ($data)=@_;
my $i=0;

foreach(split(//,$data)) {
print unpack(\'H8\',$_)." ";
$i++;
if ($i eq 16) {
print "
\\n";
$i=0;
}

}

print "
\\n";

}
проблема: если делаю send (SOCK, "$msg", 0); больше 2-х раз скрипт вешается или оооочень долго думает.
как подольше пообщатся с сервером? запустил прогу которая через прокси сокс5 работает и снифером выдернул весь разговор
запрос - ответ:
05 01 00 - 05 00
05 02 00 01 cd bc 93 2e 09 f2 - 05 00 00 01 45 2f 67 8b 0e 40
05 02 00 02 - 05 00
05 01 00 03 0d 6c 6f 67 69 6e 2e 69 63 71 2e 63 6f 6d 14 46 - 05 00 00 01 45 2f 67 8b 0e 4d
... - ...
как этот разговор клиент-сервер реализовать?

Оффлайн 09h

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 82
  • +0/-0
  • 0
    • Просмотр профиля
проблема с сокетами
« Ответ #1 : 20 Мая 2006, 01:31:21 »
хмм... оно даже если и 2 раза send делаю всеравно часто на долго задумывается(( а разговор снифером видно, все ок. но на 3-й send сервер не отвечает... в чем проблема?

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #2 : 20 Мая 2006, 08:40:53 »
попробуй вместо send - syswrite SOCK $x, или print SOCK $x

может что нибудь изменится. или еще осылать символ \\n  в в конце каждого послания.

Оффлайн Zerokool

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #3 : 21 Мая 2006, 22:38:35 »
А какова вообще задача. Возможно этот модуль и не нужен.

Оффлайн 09h

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 82
  • +0/-0
  • 0
    • Просмотр профиля
проблема с сокетами
« Ответ #4 : 22 Мая 2006, 00:01:46 »
задача разобратся с сокетом (как осуществить такой разговор клиента с сервером) ) можно и не на этом примере

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #5 : 22 Мая 2006, 06:51:10 »
$sock = IO::Socket::INET->new(PeerAddr => "$server_smtp:smtp(25)", Timeout => 4))
sysread $sock,$buf,255;
print "1: $buf";
syswrite $sock, "helo word\\r\\n";
sysread $sock,$buf,255;
print "2: $buf";
syswrite $sock, "quit\\r\\n";
sysread $sock,$buf,255;
print "3: $buf";
close $sock;

Рабочий пример "диалога" с smtp сервером. Как раз клиент с сервером.

Оффлайн Zerokool

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #6 : 22 Мая 2006, 18:35:25 »
xames, вай маладэц. Харашо сказал, да

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #7 : 23 Мая 2006, 07:27:13 »
что-то не нравится?

Оффлайн Zerokool

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #8 : 25 Мая 2006, 19:32:07 »
да нет, я в прямом смысле.
Кстати я раньше не пользовался модулями для работы с сокетами под Перлом. Вот настала серьезная необходимость. Ты по какой литературе изучал? Только не отсылай на Гугл. Мне интересно именно твое мнение.

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #9 : 26 Мая 2006, 06:47:33 »
Вот хорошая литература по Perl, выложил в свое время до сих пор хранится))). Там как раз таки и есть хорошая книга (programming the network with perl),  показывающся примеры работы с сетью на различном уровне, в том числе и с сокетами.

Оффлайн Zerokool

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с сокетами
« Ответ #10 : 26 Мая 2006, 16:14:25 »
Мая твая сказать бальшая спасиба

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28