VPS с ос Виста. Ретрансляция видео.

12
rtyug
На сайте с 13.05.2009
Offline
263
#11

можно еще примерно так, только переделать и оптимизировать:

(читать в дескриптор <$sock> и с него сразу отправлять данные в $socket туда куда отправляем...)



use IO::Socket;
use strict;
use warnings;
use HTTP::Headers;
use HTTP::Message;
use HTTP::Request;
use HTTP::Response;


$sock = IO::Socket::INET->new(PeerAddr => 'www.perl.ru',
PeerPort => 80,
Proto => 'tcp'
Type => SOCK_STREAM);
# Или так
# $sock = IO::Socket::INET->new(PeerAddr => 'www.perl.ru:80');
# $sock = IO::Socket::INET->new("XXX.XXX.XXX.XXX:80");
# Параметры метода new() помогают ввести дополнительные опции
# подключения, например Timeout.

if($sock){
print $sock $request;
while(<$sock>){
push(@response,$_);
}
}




my $f_header = HTTP::Headers->new;
$f_header->header('Content-Disposition' => 'form-data; name="<i>file</i>"; filename="<i>somefile.bin</i>');
$f_header->header('Content-Type' => '<i>application/octet-stream</i>');
$f_header = $boundary."\n".$f_header->as_string."\n";
# Прибаляем к длинне запроса
$length += length $f_header;
$length += $size;
# Собственно, процедура ниже только лишь для случаев, когда фалов много.
# Тогда, нам сначала нужно посчитать длинну контента, ибо она (длинна) будет указываться в основном заголовке
push @{$files}, {header => $f_header, file => $file};
# ... И так далее, для каждого файла ...

# Итак у нас все готово
$length += length $boundary.'--'; # Концевую строку тоже считаем
# Открываем сокет
my $socket = IO::Socket::INET->new($domain.':'.$port) || die $!;
# К основному заголовку длинну
$head .= "\nContent-Length: ".$length;
# Отправляем в сокет заголовок и первую (текстовую) часть контента
print $socket $head;
print $socket "\n\n";
print $socket $content;


print $socket $file->{header};

print $socket $_ while <$sock>;
print $socket "\n";
close($sock);


# Отсылаем сокету конец файла
print $socket $boundary.'--';
# Отсылаем сокету конец файла
shutdown($socket, 1);
# Получаем из сокета ответ и разбираем его
my $response = HTTP::Response->parse( join ('', <$socket>) );
if ($response->is_success) {
print $response->content
} else {
die $response->status_line
}

rtyug добавил 17.10.2010 в 12:52

вместо red5 я бы попробовал бы вот эту штуку православную использовать:

http://search.cpan.org/~typester/Kamaitachi-0.03/lib/Kamaitachi.pm


Kamaitachi - perl flash media server
SYNOPSIS ^

use Kamaitachi;

my $kamaitachi = Kamaitachi->new( port => 1935 );

$kamaitachi->register_services(
'servive1' => 'Your::Service::Class1',
'servive2' => 'Your::Service::Class2',
);
$kamaitachi->run;

DESCRIPTION ^

Kamaitachi is perl implementation of Adobe's RTMP(Real Time Messaging Protocol).

Now kamaitachi supports Remoting and MediaStreaming via RTMP. SharedObject is not implemented yet.

This 0.x is development *alpha* version. API Interface and design are stil fluid.

If you want to use kamaitachi, look at example directory. it contains both server script and client swf.

тут можно использовать событийно ориентированное программирование

sub run {

my $self = shift;

Danga::Socket->AddTimer(
0,
sub {
my $poll
= $Danga::Socket::HaveKQueue ? 'kqueue'
: $Danga::Socket::HaveEpoll ? 'epoll'
: 'poll';
$self->logger->debug(
"started kamaitachi port $self->{port} with $poll"
);
}
);

Danga::Socket->EventLoop;
}
Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
W3
На сайте с 16.10.2010
Offline
2
#12
Zero-xack:
виста это не винда? :D

Честно говоря не пользовался вистой, не чего не могу сказать. Знаю только что есть ос виста. Возможно я ошибаюсь.

Pavel.Odintsov
На сайте с 13.05.2009
Offline
169
#13
wolf34:
Так, я не пойму, нужно ли ставить ред 5 или можно без него?
Нет необходимо именно винда или виста. Но исходя их выше перечисленного остается винда. Где можно найти хороший сервер с виндой и хорошим трафом?

Для этого можно обойтись впс или брать выделенный сервак?

Лучше сервер, сильной постоянной нагрузки на канал не каждый ВПС хостер выдержит да и канал на выделенных машинах побыстрее.

Решение по обнаружению DDoS атак для хостинг компаний, дата центров и операторов связи: FastNetMon (https://fastnetmon.com)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий