![]() |
|
|||||||
| Register | FAQ | The Twelve Commandments | Members List | Calendar | Arcade | Find the Best VPN | Today's Posts | Search |
| General Gnutella Development Discussion For general discussion about Gnutella development. |
![]() |
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
I'm developing a Linux Gnutella client for studing purposes. The thing is that I'm trying to prove my version with Gnut, and I don't receive what I expected when Sent my ping.
I send the "GNUTELLA CONNECT...." and Gnut replies my with the "Gnutella OK", so I write into the port the ping with a certaing ID. I debugged the Gnut code, and I saw that It receives my Ping well, and proccess it ok, and sends to me back, with the same ID i gave it. The problem is, that I receive anything but what I'm expected to receive. Thanks. This is the part of the code where I receive the Pong Structure. Note: pszBuffer is declared as Global Variable, and is an unsigned *char. Structure: struct stHeader { unsigned char szID[16]; unsigned char cPayload; // 1 byte unsigned char cTTL; unsigned char cHops; unsigned char lPayLength[4]; // 4 bytes }; struct stPong { unsigned char iPort[2]; // 2 bytes unsigned char szIP[4]; unsigned char lCantArch[4]; unsigned char lCantKb[4]; }; /************************************************** ****************************/ int fRecibirPong(int iSock) { HEADER *stHead; PAQUETE *pstPaquete; PONG *stPong; unsigned long int lTam; if ((stHead = (HEADER*)malloc(sizeof(HEADER))) == NULL) { fMsgError("MEMORIA INSUFICIENTE"); fFin(); } // printf("Tamaño de stHead: %d\n", sizeof(HEADER)); memset(pszBuffer,0,MAXBUFCONECT); if (recv(iSock, pszBuffer, sizeof(HEADER),0) < 0) { fMsgError("ERROR AL RECIBIR UN PONG"); fFin(); } stHead = (HEADER *)pszBuffer; fImprimirHeader(stHead); lTam = *((int *)stHead->lPayLength); printf("Tamaño de stPong: %ld\n", lTam); if ((stPong = (PONG*)malloc(sizeof(PONG))) == NULL) { fMsgError("MEMORIA INSUFICIENTE"); fFin(); } memset(pszBuffer,0,MAXBUFCONECT); if (recv(iSock, pszBuffer, sizeof(PONG),0) < 0) { fMsgError("ERROR AL RECIBIR UN PONG"); fFin(); } stPong = (PONG*)pszBuffer; fGuardarLog("PONG RECIBIDO"); fImprimirPong(stPong); return 1; } |
|
#2
|
|||
|
|||
|
what is the value this line prints
// printf("Tamaño de stHead: %d\n", sizeof(HEADER)); |
|
#3
|
|||
|
|||
|
This line is under comments, and it was simply wrote to know if Header size was well. It doesn't do anything.
|
|
#4
|
|||
|
|||
|
I know it is commented out. What does it say the sizeof(HEADER) equals?
|
|
#5
|
|||
|
|||
|
HEADER is the type defined for the stHeader Struct:
typedef struct stHeader HEADER; |
|
#6
|
|||
|
|||
|
I understand that. Let me try to be a little clearer. When you call sizeof(HEADER) does it return 23 or 24? I ask because on win32 if you call it, it returns 24 which is incorrect.
|
|
#7
|
|||
|
|||
|
It returns me 23. I had problems when defined the PayLength as long Int, so I changed it to unsigned char, and sizeof(HEADER) return me 23 now.
|
|
#8
|
|||
|
|||
|
Can you post the bytes that you receive here?
|
|
#9
|
|||
|
|||
|
I don't undestand what you want, but if you need the bytes I receive when I was supposed to receive my ID, I need I to tell you that it depends on the ocassion. It changes all the time. But always seems like it takes my ID ( which is formed by numbers, but they are characters )...an changes it to char. It's like doind char(number), where number is a part of my ID...
I think I'm not doing something I have to do to receive this, so I get my ID like anything else. The only thing I can give you now, is the whole code. Do yo need it ??? |
|
#10
|
|||
|
|||
|
Can you just paste the bytes for your request and a reply here?
ie: Request: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 00 05 00 00 00 00 00 Reply: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 01 01 00 00 00 00 0E 18 CA 7F 00 00 01 00 00 00 00 00 00 00 00 |
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Not Receiving Pro/ Received Unknown Bill | pierd001 | Windows | 5 | December 27th, 2006 06:31 AM |
| Receiving Key Error Message when Running Install Exe | SharonB | Windows | 0 | August 24th, 2005 04:46 AM |
| receiving constant error | Unregistered | XoloX Beta program | 6 | November 22nd, 2002 11:42 AM |
| Not receiving any hosts when I start napshare | duxbuz | NapShare (Cross-platform) | 2 | June 16th, 2002 10:03 AM |
| Receiving Problems | umStefa | Gnucleus (Windows) | 1 | April 26th, 2002 04:27 PM |