The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Spesielle Forums > IP Networking
.
google unix.com



IP Networking Lær TCP / IP, Internet Protocol, Routing, rutere Network protokollene i UNIX og Linux forum.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Problemet med minne lekkasje kshk123 HP-UX 2 05-25-2009 08:01
minne lekkasje problem sonali High Level Programmering 5 05-25-2009 07:55
Minne lekkasje i pthread mindTeaser UNIX for Advanced & ekspertbrukere 4 05-18-2009 02:30
Minne lekkasje av fork () whererush High Level Programmering 7 05-11-2006 12:51
om virtuelt minne og minne lekkasje shriashishpatil High Level Programmering 4 02-20-2006 11:31

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-16-2005
lenna lenna is offline
Registrert bruker
  
 

Bli Dato: juli 2005
Innlegg: 3
minne lekkasje?

Hei Alle,

min klient server applikasjon kan arbeide i to moduser:
1) én retning - kun klienten sender meld til server
2) to retninger - server gir "svar" til klienten.

når programmet kjøres i den første modusen det ser OK ut, men når server svar til klienten enn klientens søknad avslutte sin drift etter en kort stund. Jeg prøver å finne problemet, men har litt taugh tid.

Dette er funksjonen som leser dataene på klientsiden (som jeg har problemer):



Code:
int TCPClient::readSocketData(int s,
              char *decodeUnifiedMsgForServer,			
              int n,			
	 bool& isMsg
             )
{
	int bcount;							int br;							
	bcount = 0;
	br = 0;
	while (bcount < n)					
	{
		if ((br = recv(s,decodeUnifiedMsgForServer,n-bcount,0)) > 0)
		{
			isMsg = true;
			bcount += br;							decodeUnifiedMsgForServer+= br;              
		}
		else if (br < 0)             /* signal an error to the caller */
		{
			return(-1);
		}
		else							             {
			return bcount;
		}
		//Y 17_04_05 -
		Sleep(0);
		//Y.
                   }
  return(bcount);
}

etter buffer (decodeUnifiedMsgForServer) er fylt av funksjonen ovenfor jeg dekode dataene inn de relevante dataene klasser som følger:



Code:
void BrainControlComData::decodeMsg(char* decodeUnifiedMsgForServer)
{



	if(strlen(decodeUnifiedMsgForServer) == 0)			
             {
		char* error = "probably an error (see Q1 below)";
	}


	char* msg = decodeUnifiedMsgForServer;
	int size = 4;

	int lenCursorData;
	int lenManipData;
	int lenVzData;

//places 1 - 12 in msg are reserved for total size/ isEventMsg/ MsgID

	int Web_lenOfClass;					
// decode len of msg
	memcpy(&Web_lenOfClass, msg, size);
	int lenOfClass = ntohl(Web_lenOfClass);

	int Web_MsgID;						
// decode msg ID
	memcpy(&Web_MsgID, msg + MSG_ID_LOCATION, size);
	int msgID = ntohl(Web_MsgID);



	//Y 6_07_05 -
	int counter = 12;

	int len = 0;
	len = comData[CURSOR_DATA]->decodeMsg(msg + counter);
	counter += len;

	len = comData[STATE_DATA]->decodeMsg(msg);
}

de første 3 bytes i buffer er heltall (generelle data, for eksempel - totalt len, msgid osv.) og jeg dekode dem i 2. funksjonen. etterpå jeg sende buffer i spesifikke data klasser som dekode de relevante dataene de trenger ved hjelp av fuction decodeMsg.

mitt spørsmål er som følger:

1) hvorfor er lengden på buffer (decodeUnifiedMsgForServer) er alltid 0 og ikke lik til lengden på melding mottatt fra server? Jeg vet at data er mottatt fra serveren fordi den er logget riktig, men når jeg sjekker lengden msg det equas 0 (første "hvis" i andre funksjonen) - noen ideer?

2) når jeg bemerket linjen som kaller decodeMsg programmet "oppførte seg OK og klient ikke avslutte sin drift. Jeg tror at denne feilen har noe å gjøre med minnelekkasje. Kanskje hvis jeg forstod det første spørsmålet jeg kunne forstå dette også.

Tusen takk for hjelpen,
Lenna
 

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 01:14.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0