JRuDevels

Jabber Russian Developers Forum.
Log in Register FAQ Memberlist Search JRuDevels Forum Index

JRuDevels Forum Index » Разработка и проектирование [Devel] » [perl] [jabber & Socket] проблема с пакетами
Post new topic  Reply to topic View previous topic :: View next topic 
[perl] [jabber & Socket] проблема с пакетами
PostPosted: Tue Feb 17, 2009 11:04 pm Reply with quote
poman
Отметившийся
Отметившийся
Joined: 17 Feb 2009
Posts: 3




привет!
появилось желание реализовать простой jabber клиент на perl'e.
использовать Net::XMPP и подобние нехочу.., все делаю через IO::Socket;

коннект (тут проблеми нету) :
Code:
 my $sock = new IO::Socket::INET(
   PeerAddr => 'jabber.ru',
   PeerPort => 5222, #5223
   Timeout  => 1,
   Proto    => 'tcp') or
    die " [-] connect \n";
print "connected!\n";


дальше отправляю первий пакет:
Code:
 print $sock "<?xml version='1.0' encoding='UTF-8'?><stream:stream to='jabber.ru' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'>";
 while ($input = <$sock>){debug($input);}
 print ($input);

и вот тут уже маленькая непонятность =\
если отправляю: ....n='1.0'> тогда нету ответа от сервера
если отправляю: ....n='1.0'/> тогда ответ примерно такой:
Code:
<?xml version='1.0'?>
<stream:stream xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
id='1696998121'
from='jabber.ru'
version='1.0'
xml:lang='en'>
<stream:features>
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
<compression xmlns='http://jabber.org/features/compress'><method>zlib</method>
</compression>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism>
</mechanisms>
<register xmlns='http://jabber.org/features/iq-register'/>
</stream:features>
</stream:stream>


окей.. дальше отправляю второй пакет:
Code:
 print $sock "<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>";
 read($sock,$input,999);
 print ($input);

и что я тут не менят, ответа от сервера нету =\
/>, \n, все что хочеш.., ответа нету =/

помогите пожалуйста, кто знает в чем моя проблемма)

p.s.: http://xmpp.org/ читал,
через wireshark перехватил пакети.

_________________
antichat.ru
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Wed Feb 18, 2009 12:38 am Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




бери Psi и смотри xml-консоль хотя бы Smile

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Wed Feb 18, 2009 12:42 am Reply with quote
poman
Отметившийся
Отметившийся
Joined: 17 Feb 2009
Posts: 3




уже смотрел консоль в QIP'e..
он походу некоторие запроси не показивает (те, там где пароль, имя передаютса, etc)
поетому и перехватил пакети в wireshark.

кто поможет?

_________________
antichat.ru
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Wed Feb 18, 2009 12:48 am Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




QIP Smile)) теперь понятно, откуда такой подход Smile))

прекрасно, кстати, через telnet отвечает на <auth>

сниффером посмотри на всякий случай, есть ли реально запрос/ответ.

но если весь бот будет на print/read, далеко не уедешь с такой архитектурой Smile

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Wed Feb 18, 2009 9:26 pm Reply with quote
poman
Отметившийся
Отметившийся
Joined: 17 Feb 2009
Posts: 3




вот что я перехватил с п-щью wireshark:
(зелений цвет - ответ сервера,
красний цвет - пакет qip'а)


первий пакет успешно отправляю (только конец пакета: "../>", а не "..>")
ответ после первого тоже получаю, такой что нужно.

второй пакет отправляю, а ответа нету =\

_________________
antichat.ru
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Thu Feb 19, 2009 10:41 am Reply with quote
Δ
Разработчик
Разработчик
Joined: 12 Jan 2005
Posts: 783
Location: Москва




вот дамп соединения JAJC'а (SASL без сжатия)

Code:
SEND: <stream:stream to="jabber.ru" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
RECV: <?xml version='1.0'?>
RECV: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='...' from='jabber.ru' version='1.0' xml:lang='en'>
RECV: <stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism></mechanisms><register xmlns='http://jabber.org/features/iq-register'/></stream:features>
SEND: <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="DIGEST-MD5"/>
RECV: <challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>...</challenge>
SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">...</response>
RECV: <challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>...</challenge>
SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
RECV: <success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>
SEND: <stream:stream to="jabber.ru" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
RECV: <?xml version='1.0'?>
RECV: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='...' from='jabber.ru' version='1.0' xml:lang='en'>
RECV: <stream:features><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>
SEND: <iq type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>someresource</resource></bind></iq>
RECV: <iq type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>...@jabber.ru/someresource</jid></bind></iq>
SEND: <iq type="set"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
RECV: <iq type='result'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>
View user's profile Send private message Send Jabber-message
[perl] [jabber & Socket] проблема с пакетами
JRuDevels Forum Index » Разработка и проектирование [Devel]
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT + 3 Hours  
Page 1 of 1  

  
  
 Post new topic  Reply to topic  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin