Título: Crear proxy web. Fallo reenviar información. Publicado por: beker en 9 Agosto 2010, 12:44 pm Buenas
En un proyecto que tengo entre manos estoy preparando un servidor proxy en java, donde evidentemente tendré datos de entrada por un puerto, y que posteriormente reenviaré tal como llegaron a otra dirección y puerto en concreto. Actualmente me encuentro un poco atascado porque originalmente para capturar los datos que se recivian por el socket lo hacía con un algoritmo complicado con un in.read() pero por defecto read se queda unos segundos esperando mientras no recibe TODOS los datos del socket antes de cerrarlo y eso me esta dando algunos problemas y para más adelante sería más engorroso de manejar(os pongo parte del codigo): Código
En xmltextAux se almacena en forma de cadena todos los bytes recividos gracias al byte[] buffer = new byte[4096];... Ahora estoy intentando pasar éste codigo a otro que utiliza funciones más avanzadas(y sin espera) asi que todo lo anterior se resumiria en algo similar a ésto: Código: InputStreamReader ir = new InputStreamReader(in); La parte de recibir por el socket de entrada el mensaje lo lee exactamente igual que la otra funcion, pero a la hora de escribir lo que se ha recibido por él para enviarlo por el socket "out" de salida algo falla porque es como si no se enviara nada. La mayor diferencia y donde creo que reside el problema es que en el codigo antiguo el mensaje se recibia como una serie de bytes[] y se enviaba directamente como los bytes[] que eran; y en la nueva version vamos leyendo línea a línea como un string y luego lo mandamos como un string y puede que haya algún problema de conversión, o de formato o algo así que no se interpreta correctamente por el servidor. Un saludo chicos y muchas gracias de antemano por leer tanta parrafada :) Título: Re: Crear proxy web. Fallo reenviar información. Publicado por: Aeros en 10 Agosto 2010, 09:58 am inserta codigo en java :D
Título: Re: Crear proxy web. Fallo reenviar información. Publicado por: beker en 10 Agosto 2010, 10:07 am inserta codigo en java :D ¿? El código que he puesto en el post es java, podría poner el código de toda la clase, pero vamos, de la versión que funciona, a la que no, sólo cambian las partes que están citadas. Un saludo! Título: Re: Crear proxy web. Fallo reenviar información. Publicado por: Debci en 10 Agosto 2010, 10:15 am inserta codigo en java :D Al parece con un solo bucle no captas toda la info, o el contenedor es demasiado pequeño, te recomiendo cojer la salida de todo lo que entra y analizar (debuggearlo vamos :P)Es lo que me parece ver, pero es primera hora de la mañana y no estoy muy fino, luego te lo pruebo y demas. Saludos Título: Re: Crear proxy web. Fallo reenviar información. Publicado por: beker en 10 Agosto 2010, 10:31 am inserta codigo en java :D Al parece con un solo bucle no captas toda la info, o el contenedor es demasiado pequeño, te recomiendo cojer la salida de todo lo que entra y analizar (debuggearlo vamos :P)Es lo que me parece ver, pero es primera hora de la mañana y no estoy muy fino, luego te lo pruebo y demas. Saludos En el codigo inicial tiene un bucle infinito con for(;;) y en el inferior también tiene un bucle con while ((xmltextAUX = r.readLine()).trim().length() > 0) donde se queda leyendo hasta que no hay más información en el socket... |