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.


 
 
LinkBack Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2 (permalink)  
Old May 19th, 2003
Gnutella Veteran
 
Join Date: March 24th, 2002
Location: Virginia
Posts: 101
tshdos is flying high
Default Re: Developing a simple Gnutella Servent.. Help

Quote:
Originally posted by miracle
I am trying to implement a simple gnutella servent (No PING and PONG messages.
You will be disconnected within 30 seconds from most hosts if you do not reply to a ping with a pong.

Quote:
...
Question: 1) Should the client close the connection immediately after sending the Query packets ???
No. If you close the connection you will never receive any QHs.

Quote:
What I am thinking is that the neighboring nodes(server component in the neighboring nodes) who receive the query packets would in turn connect to their neighbors and send them the query packets and close the connection. The node or nodes which have that file being searched ( i.e. a QUERY HIT) would then create a QUERYHIT packet and send it back to the upstream node from where the query packet arrived.
When they receive the query they will send it to their CONNECTED
neighbors.

Quote:
my confusion here is this:
After sending the query packet or request the client component of the first node will close all the sockets connecting to its neighbors. The results ( QUERYHITS) will be handled by the server component of the first node.
It works like this:
You connect to a neighbor and send a query, not closing the connection. The neighbor in turn, forwards the query to its neighbors and so on. Any hits generated will be routed back down the path they were sent to you. During this same time you will receive pings and queries that you will at least have to read and dispose. When you have received as many hits as you like, you MAY disconnect. Remember though, connecting is one of the most time consuming activities a servent has to do because of all the busy signals and "dead hosts".

Quote:
How does the node confirm that it has received all the QUERY HITS possible.
You can't determine that you have received all the hits possible. You just wait for some time limit and assume you have received every hit.

Quote:
A server could receive a QUERYHIT for a QUERY which was sent a long time ago.
That is why messages have the 16 bytes of message id. You store that value when you send the query and any hits resulting from that query will arrive with the same 16 bytes of message id.


If you or anyone made a client that worked in this fashion (ONLY interested in getting hits and not helping the network) would probably have their client banned. If it is just a personal project then there wouldn't really be any problem.
Reply With Quote
 


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
Directory, idea on developing gnutella, constructive criticism, please Onib General Gnutella Development Discussion 2 February 27th, 2003 05:56 PM
looking for a simple java servent feliz General Gnutella Development Discussion 3 February 14th, 2002 02:35 AM
client ID (=servent ID=servent GUID) barbapappa999 Gnotella (Windows) 0 February 8th, 2002 04:23 AM
developing a gnutella client!!! High Lander General Gnutella Development Discussion 1 November 22nd, 2001 01:41 PM


All times are GMT -7. The time now is 06:03 AM.


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.