Пересылка файлов через Socket

Тема в разделе "Perl программирование", создана пользователем NODE49, 31 июл 2009.

  1. NODE49

    NODE49 Гость

    Нужно организовать клиент-серверное приложение для пересылки различных файлов с одного компа на другой. Подскажите, как грамотно это реализовать?

    В настоящий момент уперся вот во что:

    На принимающей стороне:

    [codebox]
    my $lst_socket = IO::Socket::INET->new(LocalPort=>PORT,
    Listen=>20,
    Proto=>'tcp',
    Type=>SOCK_STREAM,
    Reuse=>1);
    die $@ unless $lst_socket;

    warn scalar(localtime), "\: Listening for connections...\n";

    while (my $connection = $lst_socket->accept) {
    Thread->new(\&interact,$connection);
    }

    sub interact{
    my $handle = shift;
    Thread->self->detach;
    $lst_socket->recv(my $data, 1024, );
    open (OUT, ">> output.txt") || die "can`t open input.txt: $!";;
    print (OUT $data);
    close (OUT);
    $handle->close();
    }
    [/codebox]

    На передающей стороне:

    [codebox]
    my $socket = IO::Socket::INET->new(
    PeerAddr => $host,
    PeerPort => $port,
    Proto => 'tcp',
    Type => SOCK_STREAM);

    open (FIL, '<', "output.doc") || die "can`t open input.txt: $!";
    while (<FIL>) {
    $socket->send($_);
    }

    close (FIL);
    close($socket);
    [/codebox]

    Вопросов собственно много, все они глупые:
    1) Почему эта конструкция не работает и как сделать так, чтоб она работала правильно?
    2) Как передавать имена файлов принимающей стороне?
    3) Как передать сигнал, что вот сейчас например, пойдет передача файла и нужно его принять?

    ЗЫ Пробовал использовать не send/recv а просто делать print в сокет - работает, но медленно, с какими-то подвисонами на минуту и похоже, что не_текстовые данные искажаются при передаче ;)
     
Загрузка...
Похожие Темы - Пересылка файлов через
  1. Ustas83
    Ответов:
    0
    Просмотров:
    433
  2. k85
    Ответов:
    26
    Просмотров:
    2.439
  3. Fillya
    Ответов:
    4
    Просмотров:
    1.846
  4. k85
    Ответов:
    1
    Просмотров:
    1.314
  5. SergeyKirik
    Ответов:
    16
    Просмотров:
    5.129

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