elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: Crear proxy web. Fallo reenviar información. 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...
2  Programación / Java / Re: Crear proxy web. Fallo reenviar información. 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!
3  Programación / Java / Crear proxy web. Fallo reenviar información. 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
  1. byte[] buffer = new byte[4096];
  2. int saved = 0;
  3. int len;
  4.  
  5.               for (;;) {
  6.  
  7.                if (done) {
  8.                    break;
  9.                }
  10.  
  11.                len = buffer.length;
  12.  
  13.                // Used to be 1, but if we block it doesn't matter
  14.                // however 1 will break with some servers, including apache
  15.                if (len == 0) {
  16.                    len = buffer.length;
  17.                }
  18.                if (saved + len > buffer.length) {
  19.                    len = buffer.length - saved;
  20.                }
  21.                int len1 = 0;
  22.                while (len1 == 0) {
  23.                    try {
  24.                        len1 = in.read(buffer, saved, len);
  25.                    } catch (Exception ex) {
  26.                        if (done && (saved == 0))
  27. {System.out.println("INICIO5555:");
  28.                            break a;
  29.                        }
  30.                        len1 = -1;
  31.                        break;
  32.                    }
  33.                }
  34.                len = len1;
  35.                if ((len == -1) && (saved == 0)) {
  36.                    break;
  37.                }
  38.                if (len == -1) {
  39.                    done = true;
  40.                }
  41.  
  42.                // No matter how we may (or may not) format it, send it
  43.                // on unformatted - we don't want to mess with how its
  44.                // sent to the other side, just how its displayed
  45.                if ((out != null) && (len > 0)) {
  46.                    //slowLink.pump(len);
  47.                    out.write(buffer, saved, len);
  48.                }
  49.  
  50.  
  51.                xmltextAUX = xmltextAUX + new String(buffer, 0, len);
  52.  
  53.            }
  54.  

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);
            BufferedReader r = new BufferedReader(ir);
            while ((xmltextAUX = r.readLine()).trim().length() > 0) {
                xmltext = xmltext + xmltextAUX;
            }
            System.out.println("MENSAJE:" + xmltext);

            if ((out != null) && (xmltext.length() > 0)) {
                System.out.println("INICIO8:");
                //slowLink.pump(len);
                //DataOutputStream dout = new DataOutputStream(out);
                //dout.writeBytes(xmltext);
                //Charset charset = Charset.forName("ISO-8859-1");
                PrintWriter p = new PrintWriter(out, true);
                p.write(xmltext);
                //out.write(xmltext.getBytes(charset));
            }

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 :)
4  Programación / Java / Re: Problema con un JDesktopPane en: 15 Julio 2010, 00:43 am
Joer!!!! q crack!!!!!!!!!

Al jPanel sí que le había puesto un Gridlayout al situarlo en el JInternalFrame pero me olvide por completo de ponerselo al jScrollPane por eso que luego salía donde le apetecia pffff qué cosas :)

Muchas gracias por la clase maestra!

Un saludo!
5  Programación / Java / Re: Problema con un JDesktopPane en: 15 Julio 2010, 00:11 am
1. Agrega los conponentes nuevamente
2. utiliza paneles y oendiente de los layauts de estos
3. el ScrollPane del internalFrame visualizacion no aparece por que no es necesario segun veo



Buenas Leyer, gracias por contestar.

La estructura que tiene todo ésto es:

jDesktopPane <- jPanel <- jScrollPane <- JTextArea

el jScrollPane toma las medidas del jDesktopPane para ajustarse a su tamaño. Pensé en quitar el jPanel de enmedio puesto que sólo van a tener el jScrollPane cada ventana pero no fue una buena idea(ahora no recuerdo porque...)

Lo único que se me ocurre sería registrar todos los eventos del jDesktopPanel general y que no haga nada, pero creo que sería una solución demasiado drastica y me mosquea que se cambien las cosas a algo que no es lo que se ha especificado en ninguna parte.

Pongo un poco de codigo por si ayuda...

Código:
outputText = new JTextArea(null, null, 20, 80);
outputText.setEditable(false);
outputScroll = new JScrollPane(outputText);
outputScroll.setSize(asphaleia.getMessageStructureFramePanel().getWidth(), asphaleia.getMessageStructureFramePanel().getHeight());

p.d: acabo de percatarme de que al cambiar de tamaño toma los valores de tamaños especificados en JTextArea(null, null, 20, 80); ignorando el size del jScrollPane, y si no especifico tamaño en jtextArea() al cambiar de tamaño la ventana se ajusta a la línea de texto más larga por defecto evitando así que salgan los scrollbar...
6  Programación / Java / Re: no puedo ejecutar un codigo para desplegar tablas de multiplicar en: 14 Julio 2010, 23:38 pm
Como bien te dicen ésto es java no C...

a la hora de imprimir el resultado intentalo con

Código:
System.out.println(mT + " = " + m + " * " + n);

Aparte de lo del simbolo <

Por cierto con println te ahorras tener que poner el retorno de carro al final \n
7  Programación / Java / Problema con un JDesktopPane en: 14 Julio 2010, 23:24 pm
Buenas!!!!

Soy un poco "novatillo" en lo concerniente a Java y me he tropezado con un pequeño enigma que se escapa a mis conocimientos....

Lo que ocurre en el programa es lo siguiente:

Al iniciar la ejecución de mi programa tenemos éste aspecto que es el deseado.





Sin embargo, al presionar con el ratón en cualquier lugar dentro del cuadro rojo se produce algún tipo de evento que descoloca todo en los internalFrames. También ocurre cuando se minimiza la aplicación y cuando se aumenta-reduce el tamaño de la ventana de la aplicación. En verde aparece señaladas algunas de las diferencias.





No tengo ningun evento registrado del JDesktopPane y no sé como evitar que ésto suceda, si alguién tiene alguna idea de por dónde sería de gran ayuda!!

Muchas gracias de antemano.

Un saludo

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines