Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella Development Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

General Gnutella Development Discussion For general discussion about Gnutella development.


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old December 13th, 2003
Novicius
 
Join Date: December 13th, 2003
Location: Italy
Posts: 1
Tw|st3r is flying high
Default Writing Java client.. how should I implement query/query hits?

Hello,
I am trying to write my GNUTella client using Java.

I wrote the code to find the first node on the network, then sent to it the "CONNECT GNUTELLA/0.6" message.

The servent correctly says "200 OK", and then.. how can I perform a search query?

At this point I got:
* the IP and port of the servent I am connected to
* its input and output streams.

The RFC says
Quote:
The message header is 23 bytes divided into the following fields.

Bytes: Description:
0-15 Message ID/GUID (Globally Unique ID)
16 Payload Type
17 TTL (Time To Live)
18 Hops
19-22 Payload Length
and
Quote:
A Query message has the following fields:

Bytes: Description:
0-1 Minimum Speed. The minimum speed (in kb/second) of servents
that should respond to this message. A servent receiving a
Query message with a Minimum Speed field of n kb/s SHOULD
only respond with a Query Hit if it is able to communicate at
a speed >= n kb/s.

2- Search Criteria. This field is terminated by a NUL (0x00). [...]
The Search Criteria is text, and it has never been specified which
charset that text was encoded with. Therefore, servents MUST assume
it is pure ASCII only.
so I built byte by byte the message giving a search criteria like "madonna" or stgh like that.

Finally I printed the bytes array to the output stream connected with the servent, but:

* if I read the servent reply on the input stream I got unuseful information about the servent.. nothing like the query hits

* if I create a ServerSocket bound to port 6346, this socket hungs on listening an never recieves anything



So.. what shall I do to get the query hits?

Thanks in advance
Reply With Quote
  #2 (permalink)  
Old December 26th, 2004
a_guest_in_the_machine
Guest
 
Posts: n/a
Default

I am also working with the protocol and trying to write my own client, but mine will be in Perl. I ran into a problem that sounded similar to yours.

I would send:

GNUTELLA CONNECT/0.6\r\n
\r\n

They would send:

GNUTELLA/0.6 200 (...)

And from what I was reading on all the documentation I could find about the protcol, it said that you should now be connected and able to send/receive ping/pong/query/queryhits.

But when I attempted to do any of this and read from the socket for my response, I would find (like you said) useful (text) information about my server. I would then eventually be disconnected from the server in less than a minute.

What I found out from (after hours of searching) an alternative document, that the handshake actually goes like:

client:
GNUTELLA CONNECT/0.6\r\n
\r\n

server:
GNUTELLA/0.6 200 (...)\r\n
(optional server specifics)\r\n
\r\n

client:
GNUTELLA/0.6 200\r\n
\r\n

And now, at this point you are offically connected, and we remain so indefinatly. And from what the documents say, you should now be able to send and receive ping/pong/query/queryhits.

I am not actually trying to work with sending a query at the moment, instead I am trying to understand how to send a ping.

This is where I become lost again. The protocol documentation that I have found is ver unclear about the specifics for sending communications at this point.

I hope the information I have shared will atleast help you get properly connected to the network. But as for the problem of sending a query, (or ping in my case) I do not know what to tell you.

Best of luck,
Jason
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
query steve_m_t General Gnutella / Gnutella Network Discussion 1 September 6th, 2004 04:04 PM
LW 3.7.10 sends wrong port in Query Hits mickish LimeWire Beta Archives 3 January 29th, 2004 02:10 PM
Clients returning paths in query hits cause crashes ? YoN!E Download/Upload Problems 4 August 6th, 2003 02:37 AM
Use pathnames when determining query hits ShaunC ToadNode (Windows) 1 October 2nd, 2002 02:42 PM
Statistics - query hits vince New Feature Requests 6 September 28th, 2002 09:45 PM


All times are GMT -7. The time now is 04:55 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.