View Single Post
  #1 (permalink)  
Old June 7th, 2001
Unregistered
Guest
 
Posts: n/a
Question Uh? -or- Nerdy questions.

Hello all!

I'm working on a Gnutella client for my platform, and I'm about halfway to
getting a basic system running, but I'm running intro trouble finding a
server to test it on... Here's what happens.

(I'm working to the Gnutella Protocol Specification v0.4 rev 1.0 from
clip2.com... Is this authoritative?)


Create a socket an open a connection to the server.

Send 'GNUTELLA CONNECT/0.4[0a][0a]'

Wait for 'GNUTELLA OK[0a][0a]'

Send a PING. This consists of :
0-15 15 bytes of random gubbish acting as a GUID.
16 0
17 1 (I don't want this to propagate yet)
18 0
19-22 0

At this point (or before), it all goes pear-shaped. One of the following
could happen :

a) Connection times out/refused by server. Fine, it's offline or saturated.

b) Connection reset by peer. Uh?

c) Server responds GNUTELLA OK... waits... and then... closes the
connection. Why reply OK when the server can't deal with another
connection?

d) Handshake goes OK, I send my PING, and the server starts sending me
QUERYs and PINGs (and the occasional PUSH, too). Fine, but where's my PING
RESPONSE?

e) As above, but the server stops talking to me after about 8k-16k. I don't
think this is a buffer problem on my end, but I'll keep looking.

I've also found some odd packets when I do get a server talking to me. It
looks like a QUERY, about 100+header bytes long, but contains /no/
printable characters. Is this Unicode/non latin alphabet?

So, some questions for y'all.

a) How can I guarantee that my header GUID hasn't been seen (ie, sent by
another client) by the server I'm talking to? Should I get a PING RESPONSE
whether or not the GUIDs unique?

b) Why should I get problem c)?

c) What /are/ those odd packets? Are they ill-formed? Should I drop the
connection? FWIW, the packets immediately before and after are fine.

d) Can anyone point me towards a protocol-compliant server that I can poke
at while I'm testing my code? Preferably one that's going to be up for a
week or so.

Well, I'm all talked out. Thanks for listening.

c17
Reply With Quote