Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. #! /usr/bin/perl
  2.  
  3. use strict;
  4. use IO::Socket;
  5. use Net::XMPP;
  6. use utf8;
  7.  
  8. my $body = $ARGV[0];
  9. my $hostName = 'jabber.alpari.org';
  10. my $portNumber = 5222;
  11. my $port = 4550;
  12. my $componentName = '';
  13. my $userName = 'unixbot';
  14. my $passWord = 'unix123bot';
  15. my $resource = 'work';
  16. my $tls = 1;
  17. my $connectionType = 'tcpip';
  18. my $conferenceName = 'unix@conference.jabber.alpari.org';
  19. my $debugLevel = 1;
  20. my $bot = new Net::XMPP::Client(
  21. debuglevel => $debugLevel
  22. );
  23.  
  24. # Создаем сокет
  25. socket(SOCK, # Указатель сокета
  26. PF_INET, # коммуникационный домен
  27. SOCK_STREAM, # тип сокета
  28. getprotobyname('tcp') # протокол
  29. ) or die ("Не могу создать сокет!");
  30. setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR, 1);
  31.  
  32. # Связываем сокет с портом
  33. my $paddr = sockaddr_in($port, INADDR_ANY);
  34. bind(SOCK, $paddr) or die("Не могу привязать порт!");
  35.  
  36. # Ждем подключений клиентов
  37. print "Ожидаем подключения...\n";
  38. listen(SOCK, SOMAXCONN);
  39.  
  40. $bot->SetCallBacks(
  41. onconnect => \&connectedCB,
  42. onauth => \&authedCB,
  43. ondisconnect => \&disconnectedCB
  44. );
  45.  
  46. $bot->Execute(
  47. hostname => $hostName,
  48. port => $portNumber,
  49. tls => $tls,
  50. username => $userName,
  51. password => $passWord,
  52. resource => $resource,
  53. register => 0,
  54. connectiontype => $connectionType
  55. );
  56.  
  57. sub connectedCB {
  58. print "Connected\n";
  59. }
  60.  
  61. sub authedCB {
  62. print "Authed\n";
  63. my $data;
  64. my $count = sysread(CLIENT, $data, 1024);
  65. chomp($data);
  66. $bot->PresenceSend(show=>"available");
  67. $bot->PresenceSend(to=>$conferenceName."/".$userName);
  68. while (my $client_addr = accept(CLIENT, SOCK)){
  69. $bot->MessageSend(to => $conferenceName,body=> $data,type=>"groupchat");
  70. print "Sended\n";
  71. print CLIENT "Hello, world\n";
  72. close(CLIENT);
  73. }
  74.  
  75. }
  76.  
  77. $bot->Disconnect();
  78.  
  79. sub disconnectedCB {
  80. print "Disconnected\n";
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement