Hola a todos:
tengo un problema bastante gordo con una practica con la universidad y me he quedado atascado. El problema es hacer un pequeño proxy con sockets. La idea es analizar la direccion mandada desde el navegador, y si esta en una lista negra, no permitir el paso al otro lado del servidor. Si esta permitida dejar pasar la comunicacion. Mi programa ya reconoce las direcciones prohibidas. Tambien consigo manejar varios clientes (mediante threads). El problema gordo lo tengo al intentar hacer el bypass de un socket a otro. Basicamente lo que hago es esperar el socket del servidor
socketCliente= serverSocekt.accept();
//lanzo un thread para analizarlo, si tiene que pasar creo otro socket
socketExterior = new socket(direccion,puerto);
La direccion ya la he conseguido cuando analizaba la direccion del socket.
Mi problema es ahora. Intento llenar un array o alguna estructura de memoria con el contenido del inputStream del socketCliente, para darselo al output del socket exterior. El problema es que no se como asegurar el tamaño del array o que estructura usar para cazar la cabecera del socket.
Habia pensado en usar el PipedinputStream pero no se como hacerlo. Por favor, alguien me puede ayudar? No me queda casi tiempo.
Gracias