Проблема с сокетами(новичок)

Тема в разделе "Perl программирование", создана пользователем dex157, 17 янв 2009.

  1. dex157

    dex157 Гость

    Всем привет..) в общем просто опишу программу и что она выдаёт..))


    [codebox]#!/perl/bin/perl -w
    use strict;
    use Socket;
    use IO::Handle;

    my ($bytes_out,$bytes_in)=(0,0);
    my $host=shift || 'localhost';
    print "host=$host ";
    my $port=shift || getservbyname('echo','tcp');
    my $protocol=getprotobyname('tcp');
    $host=inet_aton($host) or die "host problem";
    socket(SOCK,AF_INET,SOCK_STREAM,$protocol) or die "socket:$!";
    my $dest_addr=sockaddr_in($port,$host);
    print "port=$port, protocol=$protocol\n";
    connect (SOCK,$dest_addr) or die "connect die coz: $!\n";
    SOCK->autoflush(1);
    while (my $msg_out=<>){
    print SOCK $msg_out;
    my $msg_in=<SOCK>;
    print $msg_in;
    $bytes_out +=length($msg_out);
    $bytes_in +=length($msg_in);
    }
    close SOCK;
    print STDERR "bytes_sent=$bytes_out, bytes_recived = $bytes_in\n";[/codebox]
    и на выходе

    [codebox]C:\Perl>1.pl
    host=localhost port=7, protocol=6
    connect die coz: Unknown error[/codebox]

    Пишу под windowsXP, этот пример просто из учебника, потому что пока изучаю перл, тестил его на linux backtrack так же, пример не работает, проверил установленные пакеты, и там и там в принципе все что нужно стоит, помогите пожалуйста с проблемой, искал в инете подобного не нашёл..( заранее спасибо..
     
  2. Vovochka

    Vovochka Гость

    my $port=shift || getservbyname('echo','tcp');

    Ну не может он на 7ой порт законектиться. Попробуй приконектиться к ya.ru на 80 порт.
    И вообще, юзай лучше IO::Socket
     
  3. dex157

    dex157 Гость

    всё, спасиб, аазобрался..)) А такой вопрос, можно ли вообще не использовать IO::Socket и тому подобные, а просто выдерать из модулей нужный код..? Оправдывает ли себя такой подход..? )
     
  4. Vovochka

    Vovochka Гость

    Не оправдает. Ибо не нужен.
    Люди специально старались сделать тебе жизнь легче, писали хитроумные модули...
    Дак зачем же отказываться от этих благ?

    + Если кто-то будет поддерживать твой код после тебя, ему будет гораздо проще почитать доку по моудлю, чем разбираться с тем, что ты там понакопировал.
     
Загрузка...
Похожие Темы - Проблема сокетами(новичок)
  1. c0de3r
    Ответов:
    5
    Просмотров:
    119
  2. DobermannTT
    Ответов:
    10
    Просмотров:
    134
  3. SoulPaladin
    Ответов:
    4
    Просмотров:
    128
  4. Artael
    Ответов:
    1
    Просмотров:
    109
  5. ENSLER
    Ответов:
    0
    Просмотров:
    102

Поделиться этой страницей