Título: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: DrKillador en 26 Febrero 2013, 08:52 am Hola! estoy haciendo una practica de la facultad en la que tengo que programar un sencillo msn/chat con sockets en C. Para ello, tengo una conversaciones en un fichero de texto, que tengo que leer y enviar a un servidor que está esperando.
Pero tengo un problema, si pongo el texto de la conversacion "a fuego" en una variable y la envio, todo va bien: Código
Pero si primero leo el texto del archivo, y despues lo envio, se me produce un error en el servidor. Creo que es porque en el caso anterior creo la variable cadena del tamaño exacto a los datos que envío, y en el otro, creo una cadena de tamaño grande (MAXBUFLEN) y despues le agrego los datos, y claro, debe haber basura al final de la cadena. ¿Como podria solucionarlo? Código
Gracias! Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: naderST en 26 Febrero 2013, 17:56 pm Es porque lo estás leyendo como binario y lo estás tratando como una cadena, es decir, cómo sabes que strlen() no se topa con '\0' en algún punto que no sea al final real de la cadena, no puedes depender de un delimitador así. Lo que puedes hacer es calcular el tamaño del archivo y almacenar la información en un buffer y enviar eso al servidor.
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: amchacon en 26 Febrero 2013, 18:11 pm El fallo es que la cadena no tiene el caracter nulo '\0' que indica el fin de cadena.
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: naderST en 26 Febrero 2013, 19:08 pm El fallo es que la cadena no tiene el caracter nulo '\0' que indica el fin de cadena. Sí lo tiene Código
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: DrKillador en 27 Febrero 2013, 09:19 am Gracias a ambos por las ideas, efectivamente amchacon el caracter nulo se lo incluía.
Hice los cambios que me recomendaste naderST (no sé si correctamente), pero sigo teniendo el problema: Código
Saludos Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: naderST en 27 Febrero 2013, 11:54 am Específicamente qué problema te está dando? Corrígeme si me equivoco: Estás intentando de enviar un archivo de texto con sockets?
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: DrKillador en 27 Febrero 2013, 12:05 pm No estoy intentando enviar el archivo, sino un string con texto, mira te copio el codigo completo del cliente.
Código
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: naderST en 27 Febrero 2013, 12:10 pm Código
Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: DrKillador en 27 Febrero 2013, 12:51 pm Dos preguntas, pq seria 256 el tamaño de sc2? donde pones buffer te quieres referir a sc2?
Muchas gracias Título: Re: [AYUDA] [C] Problema al leer archivo texto y enviar Publicado por: naderST en 27 Febrero 2013, 13:09 pm Dos preguntas, pq seria 256 el tamaño de sc2? donde pones buffer te quieres referir a sc2? Muchas gracias Es un tamaño arbitrario, podrías hacer lo que estabas haciendo de contar cuantos caracteres hay en el archivo y hacer sc2 de ese tamaño + 1 para el caracter nulo. Sí, donde coloqué buffer me refería a sc2. |