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 May 7th, 2003
Novicius
 
Join Date: May 7th, 2003
Posts: 4
zomlak is flying high
Question No pong received!

Hi,

I am currently writing a simple gnutella client as my thesis. But I am
stucked at the moment. My question might not be of common interest. If so please state do you know any list or forum to ask for help.

Anyway,

I have used Gnutella protocol draft at rfc-gnutella.sourceforge.net. So far
I have achieved connecting to the network using GnuWebCaches. I receive a
200 OK messega from a connected client. So up to this point everything must
be fine. But then I send a ping message and wait for a pong. But nothing is
received. Only send returns 0.

My C code,

struct ping_header
{
char GUID[16];
char Payload_Type;
char TTL;
char Hops;
char Payload_Len[4];
};

struct ping_header *get_ping_header(void)
{
struct ping_header *p_head;

p_head = (struct ping_header *)malloc(sizeof(struct ping_header));
p_head = (struct ping_header *)malloc(sizeof(struct ping_header));

strcpy(p_head->GUID,"jhwerdkrodmwjydh");
p_head->Payload_Type = '0';
p_head->TTL = '2';
p_head->Hops = '0';
strcpy(p_head->Payload_Len,"0");

return p_head;
}
...
...
send(sockfd, get_ping_header(), sizeof(struct ping_header), 0);
memset(buf, '\0', 1024);
while (1)
{
i = recv(sockfd, buf, 1024, 0);
if(i>=0)
{
printf("\n<%d> bytes data received\n", i);
printf("\nPing is answered as %s\n", buf);
}
}


Kaan Coskun
Reply With Quote
  #2 (permalink)  
Old May 8th, 2003
Apprentice
 
Join Date: March 18th, 2003
Location: Marseille, France
Posts: 5
gavelin is flying high
Default

1) You should use char as bytes and not as characters.
I mean, you send the character "0" as payload Type.
But the char "0" as not the byte value 0x00 that is the type of a ping. So send 0x00 instead of "0". You should act like this for all the other fields.

2) in you message you say you receive OK from a remote client. Have you send OK too as the draft speficy it (section handshake) before send the ping?

Hope this could be helpful
regards,
Reply With Quote
  #3 (permalink)  
Old May 9th, 2003
Novicius
 
Join Date: May 7th, 2003
Posts: 4
zomlak is flying high
Thumbs up Well, it is done!

Thanks for your help. It was very helpfull. It turned out to be that my payload_length field should be an integer not a char array.

Here is the solution,

struct ping_header
{
char GUID[16];
char Payload_Type;
char TTL;
char Hops;
int Payload_Len; <------------
};

struct ping_header *get_ping_header(void)
{
struct ping_header *p_head;

p_head = (struct ping_header *)malloc(sizeof(struct ping_header));

strcpy(p_head->GUID,"jhwerdkrodmwjydh");
p_head->Payload_Type = '0';
p_head->TTL = '2';
p_head->Hops = '0';
p_head->Payload_Len = 0; <------------

return p_head;
}



But I had another issue. So I was not able to even try the advisory. The clients I received from the GnuWebCaches didn't seem to be accepting me anymore. They generally responded 503 Gnutella unavaible. Is it normal. I guess I am in a ban list or something like that.
Reply With Quote
  #4 (permalink)  
Old May 9th, 2003
Apprentice
 
Join Date: March 18th, 2003
Location: Marseille, France
Posts: 5
gavelin is flying high
Default

okay, be just careful that an int can be different that 4 bytes on somes machines and langages. (for instance an integer can be 16 or 32 bits long...)
Did you receive Pongs?

I don't think your Payload_type field is right. You have:
char Payload_Type;
...
and:
p_head->Payload_Type = '0';


but the char '0' as you write has as ASCII Code 0x30 and not 0x00
so code instead:
p_head->Payload_Type = 0x00;

Concerning the non responding hosts and clients, i have exactly the same problem with the client I develop. Nearly all the servents are busy, and it's a real problem
Reply With Quote
  #5 (permalink)  
Old May 10th, 2003
Paradog's Avatar
Distinguished Member
 
Join Date: April 5th, 2002
Location: Germoney
Posts: 739
Paradog is flying high
Default

Quote:
Originally posted by gavelin
Nearly all the servents are busy, and it's a real problem
Once you support Ultrapeer it will get easier to connect since many servents deny peer connections due it's bigger traffic.
Worked out for me.
Reply With Quote
  #6 (permalink)  
Old May 20th, 2003
Novicius
 
Join Date: May 7th, 2003
Posts: 4
zomlak is flying high
Default

I was mistaken with that I received any pongs. I just received a ping request from the servant.

I have changed the payload type. But still seem to be there is a problem. I receive nothing.

If you have your code I would be grateful to see the basic parts that handles sending and receiving pings. Altough I know only C I think I shouldn't mind seeing codes written in other languages.

zomlakNO@SPAMhotmail.com, kcoskunNO@SPAMknuth.cs.bilgi.edu.tr
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
Have not received LimeWire Pro margaret savage Open Discussion topics 1 June 12th, 2006 03:53 PM
Purchased LW Pro but only received Basi Canuck Windows 8 October 3rd, 2005 01:37 PM
never received download e-mail jstchln28 Chat - Open Topics - The Lounge 1 August 11th, 2005 01:18 PM
Received Incoming this session...Help!!! hecubusx Download/Upload Problems 0 August 22nd, 2004 01:59 PM
r 0.6.8 RED "Received(Dropped)" lightstone General Discussion 1 March 13th, 2001 02:02 PM


All times are GMT -7. The time now is 12:41 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.