The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Especial Foros > Redes IP
.
google unix.com



Redes IP Aprender de TCP / IP, Protocolo de Internet, Enrutamiento, Routers, Protocolos de red en este foro de UNIX y Linux.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Problema con la pérdida de memoria kshk123 HP-UX 2 05-25-2009 08:01 AM
problema de fugas de memoria sonali Programación de Alto Nivel 5 05-25-2009 07:55 AM
Pérdida de memoria en pthread mindTeaser UNIX para usuarios avanzados y expertos 4 05-18-2009 02:30 AM
Tenedor de la pérdida de memoria () whererush Programación de Alto Nivel 7 05-11-2006 12:51 PM
acerca de la memoria virtual y la pérdida de memoria shriashishpatil Programación de Alto Nivel 4 02-20-2006 11:31 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 07-16-2005
lenna lenna is offline
Usuario Registrado
  
 

Fecha: julio 2005
Publicaciones: 3
pérdida de memoria?

Hi All,

mi cliente servidor de aplicación puede funcionar en dos modos:
1) una sola dirección - sólo cliente envía mensajes al servidor
2) dos direcciones - servidor da "respuestas" a los clientes.

programa cuando se ejecutan en el primer modo se ve bien, pero cuando el servidor del cliente que las respuestas a la solicitud de cliente de salida de su funcionamiento después de un corto tiempo. Estoy tratando de encontrar el problema, pero algunos han taugh tiempo.

esta es la función que lee los datos en el lado del cliente (en el que tengo problemas):



Código:
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);
}

después de amortiguación (decodeUnifiedMsgForServer) se llena por encima de la función que descodificar los datos en las clases de datos de la siguiente manera:



Código:
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);
}

los primeros 3 bytes en el buffer son enteros (como los datos generales - len total, msgid etc) y decodificarla en la 2 ª función. después de enviar el buffer de datos específicos en las clases que descifrar los datos que necesitan utilizando la fuction decodeMsg.

mis preguntas son las siguientes:

1) ¿por qué es la longitud del buffer (decodeUnifiedMsgForServer) es siempre 0 y no es igual a la longitud del mensaje recibido del servidor? Sé que los datos son recibidos desde el servidor, ya que se registra correctamente, pero aún cuando la longitud del mensaje de verificación que equas 0 (primer "si" en la segunda función) - todas las ideas?

2) cuando me comentó la línea que llama a la decodeMsg la aplicación "se comportó en" Aceptar "y el cliente no salir de su funcionamiento. Creo que este error tiene algo que ver con la pérdida de memoria. tal vez si he entendido la primera pregunta que yo podría entender este como un bien.

Muchas gracias por su ayuda,
Lenna
 

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 10:15 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0