Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/perl
- use strict;
- use IO::Socket;
- use Net::XMPP;
- use utf8;
- my $body = $ARGV[0];
- my $hostName = 'jabber.alpari.org';
- my $portNumber = 5222;
- my $port = 4550;
- my $componentName = '';
- my $userName = 'unixbot';
- my $passWord = 'unix123bot';
- my $resource = 'work';
- my $tls = 1;
- my $connectionType = 'tcpip';
- my $conferenceName = 'unix@conference.jabber.alpari.org';
- my $debugLevel = 1;
- my $bot = new Net::XMPP::Client(
- debuglevel => $debugLevel
- );
- # Создаем сокет
- socket(SOCK, # Указатель сокета
- PF_INET, # коммуникационный домен
- SOCK_STREAM, # тип сокета
- getprotobyname('tcp') # протокол
- ) or die ("Не могу создать сокет!");
- setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR, 1);
- # Связываем сокет с портом
- my $paddr = sockaddr_in($port, INADDR_ANY);
- bind(SOCK, $paddr) or die("Не могу привязать порт!");
- # Ждем подключений клиентов
- print "Ожидаем подключения...\n";
- listen(SOCK, SOMAXCONN);
- $bot->SetCallBacks(
- onconnect => \&connectedCB,
- onauth => \&authedCB,
- ondisconnect => \&disconnectedCB
- );
- $bot->Execute(
- hostname => $hostName,
- port => $portNumber,
- tls => $tls,
- username => $userName,
- password => $passWord,
- resource => $resource,
- register => 0,
- connectiontype => $connectionType
- );
- sub connectedCB {
- print "Connected\n";
- }
- sub authedCB {
- print "Authed\n";
- my $data;
- my $count = sysread(CLIENT, $data, 1024);
- chomp($data);
- $bot->PresenceSend(show=>"available");
- $bot->PresenceSend(to=>$conferenceName."/".$userName);
- while (my $client_addr = accept(CLIENT, SOCK)){
- $bot->MessageSend(to => $conferenceName,body=> $data,type=>"groupchat");
- print "Sended\n";
- print CLIENT "Hello, world\n";
- close(CLIENT);
- }
- }
- $bot->Disconnect();
- sub disconnectedCB {
- print "Disconnected\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement