![]() |
connection problem Hello, I have written a gnutella client and it works. The problem is I can only get few connection. WHen I got an outcoming connection, it can only keep alive for a little while then disconnect. When I got an incoming connection, it can keep alive for a longer time, but I can only get 1 or 2 incoming connections. When I run bearshare and my client in the same machine using different port, bearshare can get enough incoming connection while my client cannot. I have no clue about it. Is anyone know how to get more connection and made them stable? I appreciate for your help.:confused: |
what is a "little while". Most clients (bearshare/limewire) send out "alive" pings .. and if you dont response with a pong within 10 sec.. your history ... |
connection problem Quote:
|
connection problems i'm having a similar problem. my client responds to keep-alive pings too. it looks like the problem is related to the other hosts (duh, of course it can't be me :D ) ... seriously. BearShare 2.5/2.6 and LimeWire 2.4.4 seem to represent the majority of clients that my client is finding, and most of them drop my connection almost immediately. usually i'm able to sneak a ping through and sometimes i get some pongs back, enough to keep 25 (i'll explain) connections searching for other hosts. i'm using 25 because with six it was taking forever to find even one host that wouldn't drop my connection. there are a few user agents that don't drop me all the time (mostly Gnucleus 1.6.0.0/1.6.3.0 and MorpheusPE 1.3.3.2). to be fair, the LimeWire clients often send 503 error codes and X-Try headers, so maybe they're just all backed up (or "shielded leaf nodes") :P the only thing i can think of is that my handshake is bad ( i'm sending Code: GNUTELLA/0.6 200 OK<cr><lf><cr><lf> |
Easy Sickfish, you should run LimeWire on the same machine that you are using to develop your client, and just connect the two to each other and see why it drops you. Or, you could use Gnucleus for testing. Either way, you've got source code for both LimeWire and Gnucleus, so you can set a breakpoint and look up their stack to find out why you are getting dropped. |
duh yeah i should have thought of that. :P |
ok, but still i can connect to my LimeWire client, but it seems to Really want to be an ultrapeer and always gives me a 503/shielded leaf node message. but it redirects me to other clients, many of which are LimeWire, and i have successfully connected to a few of those. is possible that my connection problems are due to a dearth of other servants with available connections? (this is my question) but both my LimeWire and BearShare clients seem to have no trouble connecting at all. i still haven't been able to connect to my own BearShare client. it sends me a 200 OK, that bad packet and then drops me every time. like, immediately. what's up with that? |
It is possible but not likely if that helps you at all :) |
Re: ok, but still Shareaza and Gnucleus are both great for debugging your client. The System window of Shareaza shows you all task it is performing (Send Handshake, etc). In Gnucleus you can go to the Connections tab after you have connected your client with it. Then you can right click on your connected client and see some stats like the effiency and errors your client caused. I used to do that way. |
I ahve nevr done it thta way but it sounds like a good idea :) |
All times are GMT -7. The time now is 10:43 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.