Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » AutoIt и Jabber

Ответить
Настройки темы
AutoIt и Jabber

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте!
Вот возникла такая проблема, никак не могу понять принцип работы с сервером Jabber.
Возьмём например сервер vk.com.
Настроил свой qip следующим образом, логин - test@my_ip, пароль - test.
Qip отправил следующюю строку:
Цитата:
<?xml version='1.0' encoding='UTF-8'?><stream:stream to='my_ip' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'>
И судя по всему ждал какогото ответа от сервера. Я попробовал отправить на vk.com тоже самое, но в ответ ничего не получил.
Отправлял строку следующим образом:
Код: Выделить весь код
TCPStartup()

$server = "vk.com"
$Port = "5222"

$jid = "login"
$jidpass = "pass"

$socket = TCPConnect(TCPNameToIP($server), $Port)
If $socket = -1 Then Exit

;  look for client connection
;--------------------
$data = "<?xml version='1.0' encoding='UTF-8'?><stream:stream to='" & $server & "' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'>"

TCPSend($socket, $data)

While 1
    $recv = TCPRecv($socket, 4098)
    If $recv <> "" Then ConsoleWrite($recv)
WEnd
Помогите пожалуйста, в чём моя ошибка?

-------
Хочу научиться писать драйвера на с++


Отправлено: 21:56, 27-07-2010

 

Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Может это тебе поможет
JAdmin v2.0 + Plugins!

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:07, 27-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


kaster, я его уже качал, но ничего не понял...
Хотяб на словах, кто знает, скажите в чём косяк?

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:42, 27-07-2010 | #3


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
Хотяб на словах, кто знает, скажите в чём косяк? »
Вот простенько, думаю сам разберешся что к чему, проверял на своему аккаунте, у меня на jabber.ru, как видно из примера - авторизация и получение сообщений работает, думаю ты это хотел узнать для начала:

Код: Выделить весь код
TCPStartup()


;прикинем, что наш ак на jabber такой: login@jabber.ru, тогда
$jidname="login" 
$server = "jabber.ru"
$jidpass = "пароль"
$Port = "5222"


_JabHello($server) 
_JabAuth($jidname, $jidpass, "jjjjjjj") 

While 1
    $recv = TCPRecv($socket, 2048)
    If $recv <> "" Then ConsoleWrite($recv&@LF)
Sleep(30)
WEnd



Func _JabHello($JabServ) 
Global $socket = TCPConnect(TCPNameToIP($JabServ),  $Port) 
If $socket = -1 Then Exit
    ;A typical user authentication process
TCPSend($socket, "<?xml version='1.0' encoding='UTF-8' ?><stream:stream to='" & $JabServ & "' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>") 
$recd = TCPRecv($socket, 2048) 
ConsoleWrite( "Ответ_на_JabHello_________________ "&$recd& @LF) 
EndFunc ;_JabHello()

;We ask the server about the authentication methods available for our specific user:
Func _JabAuth($JabUser, $JabPass, $JabRes) 
TCPSend($socket, "<iq type='get' to='" & $server & "' id='auth1'><query xmlns='jabber:iq:auth'><username>" & $JabUser & "</username></query></iq>") 
$recd = TCPRecv($socket, 2048) 
ConsoleWrite("Ответ_на_Запрос_JabAuth______________ "& $recd& @LF)
TCPSend($socket, "<iq type='set' id='auth2'><query xmlns='jabber:iq:auth'><username>" & $JabUser & "</username><password>" & $JabPass & "</password><resource>" & $JabRes & "</resource></query></iq><presence type='available'></presence>") 
EndFunc ;_JabAuth()

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:32, 28-07-2010 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Цитата beve:
$jidname="login" $server = "jabber.ru" $jidpass = "пароль" $Port = "5222" »
С такими настройками возвращает:
Код: Выделить весь код
Ответ_на_JabHello_________________ 
Ответ_на_Запрос_JabAuth______________ 
<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='2764011537' from='jabber.ru' xml:lang='ru'>
<iq type='result' from='jabber.ru' id='auth1'><query xmlns='jabber:iq:auth'><username>login</username><password/><digest/><resource/></query></iq><stream:error><xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>
А если ставлю сервер vk.com, тогда в консоль вообще ничего не выводится...
+ пришлось объявить переменную $socket до функций, т.к. выдавало ошибку.
Код: Выделить весь код
TCPStartup()

;прикинем, что наш ак на jabber такой: login@jabber.ru, тогда
Global $socket
$jidname="login"
$server = "jabber.ru"
$jidpass = "пароль"
$Port = "5222"

_JabHello($server)
_JabAuth($jidname, $jidpass, "jjjjjjj")

While 1
    $recv = TCPRecv($socket, 2048)
    If $recv <> "" Then ConsoleWrite($recv&@LF)
Sleep(30)
WEnd

Func _JabHello($JabServ)
    $socket = TCPConnect(TCPNameToIP($JabServ),  $Port)
    If $socket = -1 Then Exit
    ;A typical user authentication process
    TCPSend($socket, "<?xml version='1.0' encoding='UTF-8' ?><stream:stream to='" & $JabServ & "' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>")
    $recd = TCPRecv($socket, 2048)
    ConsoleWrite("Ответ_на_JabHello_________________ "&$recd& @LF)
EndFunc ;_JabHello()

;We ask the server about the authentication methods available for our specific user:
Func _JabAuth($JabUser, $JabPass, $JabRes)
    TCPSend($socket, "<iq type='get' to='" & $server & "' id='auth1'><query xmlns='jabber:iq:auth'><username>" & $JabUser & "</username></query></iq>")
    $recd = TCPRecv($socket, 2048)
    ConsoleWrite("Ответ_на_Запрос_JabAuth______________ "& $recd& @LF)
    TCPSend($socket, "<iq type='set' id='auth2'><query xmlns='jabber:iq:auth'><username>" & $JabUser & "</username><password>" & $JabPass & "</password><resource>" & $JabRes & "</resource></query></iq><presence type='available'></presence>")
EndFunc ;_JabAuth()

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:52, 28-07-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » AutoIt и Jabber

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - [addon] QIP 2012 - комбайн из ICQ/Jabber/SIPNet/Mail.ru Agent greg_b Наборы обновлений для Windows XP/2003/Windows 7 461 03-03-2015 22:01
Разное - [решено] Опрос. Нужны ли аддоны Psi+, tkabber, Jabbim и другие jabber, ICQ и IRC клиенты? Putin-mode Наборы обновлений для Windows XP/2003/Windows 7 4 21-07-2010 05:25
Интернет - Yahoo Jabber transport hs85 Программное обеспечение Windows 0 05-07-2009 13:35
Прочие - [решено] Подскажите jabber сервер с поддержкой аутентификации AD djeff Программное обеспечение Windows 2 20-05-2009 13:14
ISA 2004 и Jabber Delirium ISA Server / Microsoft Forefront TMG 6 25-02-2009 09:31




 
Переход