Article View: es.comp.os.linux.programacion
Article #12838Re: Estructuras por socket
From: cesar m. redondo
Date: Mon, 07 May 2001 14:28
Date: Mon, 07 May 2001 14:28
47 lines
2843 bytes
2843 bytes
> no es que no vaya a funcionar, funciona perfectamente; lo
> que pasa es que no tiene sentido.
no funciona, en esto consiste mi proyecto fin de carrera y he hecho montones
(pero montones) de pruebas y te aseguro que no funciona mandar un char* en
una estructura.
> Estas pasando una direccion de memoria que (se supone)
> apunta a una cadena del proceso cliente al servidor, en
> el que esa misma posicion de memoria a saber a donde apunta.
Siento contradecirte pero no pasa la direcci�n de memoria, pasa el contenido
del char*, porque los char* sabes que tienen un tratamiento especial y
siempre que pones char* va al contenido de la direcci�n apuntada por esa
varible char*, te envia por el socket la cadena de texto que tengas en esa
variable lo que pasa es que no te env�a el \0 con lo que en el servidor al
reconstruir la estructura se cree que es cadena de texto hasta que encuentra
un 0 que puede ser un 0 de datos enteros que vengan posteriormente, un
ejemplo para explicar esto:
typedef struct
{
int a;
char* b;
int c;
int d;
int e;
};
si tienes a=8, b=hola, c=6, d=0 y e=89;
en el servidor al recibir la estructura recibe:
a=8, b=hola6, d=89 y e=*basura, lo que le de la gana poner, un entero
grande seguramente*
Por supuesto que no he comentado todav�a que en el servidor debes tener
memoria reservada para la variable char* donde guardar la informaci�n que
recibas, para que no escriba vete tu a saber donde.
Este funcionamiento anomalo esta requetecomprobado.
> Si quieres pasar una cadena, envia un char D[256];
Esto no lo he probado porque mis cadenas de caracteres eran char* porque
variaban de tama�o y necesitaba usar memoria din�mica.
un saludo.
Technical Details
Message-ID:
<3AF6B106.E6D64723@mad.tecsidel.es>Path:
arc1-ca.pugleaf.net!newsfeed.google.com!newsfeed.stanford.edu!canoe.uoregon.edu!logbridge.uoregon.edu!news.rediris.es!news-2.rediris.es!tidos.tid.es!not-for-mailReferences:
<3AF3F290.1030009@wanadoo.es> <874ruzsvb6.fsf@relativistic.homeip.net> <3AF64BC4.B737246B@mad.tecsidel.es> <9d652a$aoj$1@news.unizar.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,5fd35ee70e813e32 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-05-07 08:10:03 PST Path: arc1-ca.pugleaf.net!newsfeed.google.com!newsfeed.stanford.edu!canoe.uoregon.edu!logbridge.uoregon.edu!news.rediris.es!news-2.rediris.es!tidos.tid.es!not-for-mail From: "cesar m. redondo" <cesar.redondo@mad.tecsidel.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: Estructuras por socket Date: Mon, 07 May 2001 16:28:22 +0200 Organization: Telefonica I+D Lines: 48 Message-ID: <3AF6B106.E6D64723@mad.tecsidel.es> References: <3AF3F290.1030009@wanadoo.es> <874ruzsvb6.fsf@relativistic.homeip.net> <3AF64BC4.B737246B@mad.tecsidel.es> <9d652a$aoj$1@news.unizar.es> NNTP-Posting-Host: 172.18.70.44 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.2.12-20 i686) X-Accept-Language: es