![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
||||
|
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 |
| Modos de visualización | Vota a este hilo |
|
|