Foros del Web » Programación para mayores de 30 ;) » Java »

servidor proxy en java!!!

Estas en el tema de servidor proxy en java!!! en el foro de Java en Foros del Web. Hola que tal, quisiera recibir algo de ayuda estoy programando un servidor proxy en java, y encontre un codigo para apollarme el problema surge que ...
  #1 (permalink)  
Antiguo 23/11/2010, 12:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta servidor proxy en java!!!

Hola que tal, quisiera recibir algo de ayuda estoy programando un servidor proxy en java, y encontre un codigo para apollarme el problema surge que no se como comprobar que e proxy esta funcionando porque en el navegador(firefox) le pongo que use proxy LOCALHOST con puerto 80, pero a la hora de realizar peticiones aparentemente el programa trabaja pero no se queda con las paginas, ni en disco ni en ninguna memo temporal...

soy principiante con este tipo de cosas asi que les dejo el codigo que tengo por si alguien me puede ayudar, gracias y si me pueden explicar como realizar la configuracion del firefox para que use el proxy correctamente se los agradeceria muchisimo porque pienso qeu talvez tenga error ahi, bueno gracias por leer y por tu valioso tiempo...

CLASE MAIN:

package proxyserver;

/**
*
* @author Liev
*/

import com.sun.corba.se.spi.activation.Server;
import java.net.* ;
import java.io.* ;
import java.lang.* ;
import java.util.* ;



/**
*
* @author user
*/
public class Main {

/**
* @param args the command line arguments
*/
// Variable to track if an error occurred
boolean errorOccurred = false;

//Variables for the host and port parameters


public static void main(String[] args) {
// TODO code application logic here

int localPort = -1;
int remotePort = -1;
String remoteHost = "localhost";

System.out.print("LA APLICACION HA INICIADO A CORRER!!!!!");


Integer parseLocalPort = new Integer(555);
System.out.println("EL PUERTO LOCAL ES 555");
Integer parseRemotePort = new Integer(80);
System.out.println("EL PUESRTO REMOTO ES 80");
localPort =555 ;
//ERROR? COMO PUEDE SER EL MISMO PUERTO LOCAL Y REMOTO? LOCALHOST?
remotePort = 80;

//Create a listening socket at proxy

ServerSocket server = null;
try
{
server = new ServerSocket(localPort);
}

catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
System.exit(-1);
}

//Loop to listen for incoming connection,
//and accept if there is one

Socket incoming = null;
Socket outgoing = null;

while(true)
{
try
{
// Create the 2 sockets to transmit incoming
// and outgoing traffic of proxy server
incoming = server.accept();
outgoing = new Socket(remoteHost, remotePort);

// Create the 2 threads for the incoming
// and outgoing traffic of proxy server
ProxyThread thread1 = new ProxyThread(incoming, outgoing);
thread1.start();

ProxyThread thread2 = new ProxyThread(outgoing, incoming);
thread2.start();
}
catch (UnknownHostException e)
{
System.err.println("Error: Unknown Host " + remoteHost);
System.exit(-1);
}
catch(IOException e)
{
//continue
System.exit(-2);
}
}
}

}

CLASE PROXYSERVER
package proxyserver;

/**
*
* @author user
*/
import java.net.* ;
import java.io.* ;
import java.lang.* ;
import java.util.* ;

class ProxyThread extends Thread
{
Socket incoming, outgoing;

ProxyThread(Socket in, Socket out)
{
incoming = in;
outgoing = out;
}

// Overwritten run() method of thread,
// does the data transfers
public void run()
{
byte[] buffer = new byte[5000];
int numberRead = 0;
OutputStream toClient;
InputStream fromClient;

try{
toClient = outgoing.getOutputStream();
fromClient = incoming.getInputStream();

while(true)
{
numberRead = fromClient.read(buffer, 0, 50);
if(numberRead == -1)
{
incoming.close();
outgoing.close();
}
String st = new String(buffer,"US-ASCII");
System.out.println("\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX\n\nXXXXXXXXXXXXXXXX\n\n" + st);


toClient.write(buffer, 0, numberRead);
}
}
catch(IOException e)
{
}
catch(ArrayIndexOutOfBoundsException e)
{
}
}
}

ESPERO SU PRONTA RESPUESTA COMPAÑEROS
  #2 (permalink)  
Antiguo 23/11/2010, 18:48
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: servidor proxy en java!!!

Hola:

El proxy q crea ese programa no es el tipo de proxy q firefox o los navegadores web usan, lo único q hace tu programa es abrir una conexión hacia un host determinado (variable remoteHost) por un puerto determinado (variable remotePort), se pone a escuchar por un puerto local (localPort) y todo lo q llegue hacia ese puerto local lo envía hacia remoteHost por el puerto remotePort. Además todo lo q lea de la conexión con remoteHost lo envía hacia la conexión local.
El proxy q necesita firefox es un proxy HTTP o proxy WEB que tiene protocolos específicos para funcionar.
aki tienes un link donde explican un poco más:
http://es.wikipedia.org/wiki/Proxy
http://compnetworking.about.com/cs/proxyservers/a/proxyservers.htm

slds;

Nup_
  #3 (permalink)  
Antiguo 23/11/2010, 23:33
 
Fecha de Ingreso: noviembre-2010
Mensajes: 15
Antigüedad: 13 años, 4 meses
Puntos: 0
De acuerdo Respuesta: servidor proxy en java!!!

Cita:
Iniciado por nup_ Ver Mensaje
Hola:

El proxy q crea ese programa no es el tipo de proxy q firefox o los navegadores web usan, lo único q hace tu programa es abrir una conexión hacia un host determinado (variable remoteHost) por un puerto determinado (variable remotePort), se pone a escuchar por un puerto local (localPort) y todo lo q llegue hacia ese puerto local lo envía hacia remoteHost por el puerto remotePort. Además todo lo q lea de la conexión con remoteHost lo envía hacia la conexión local.
El proxy q necesita firefox es un proxy HTTP o proxy WEB que tiene protocolos específicos para funcionar.
aki tienes un link donde explican un poco más:
http://es.wikipedia.org/wiki/Proxy
http://compnetworking.about.com/cs/proxyservers/a/proxyservers.htm

slds;

Nup_
:apla uso:
muchas gracais voy a leer esta info que me enviaste, te agradezco muchisimo la ayuda porque estaba obstinado con esto, lo que estoy probando ahora es unir el codigo de un server http que hice con el de un cliente simple todo hecho en java, suponiendo que el proxy actua como cliente y servidor segun la ocacion.....

voy a revisar esto de nuevo te agradezco la ayuda si supieras cuan importante es este trabajo para mi ademas de la reputacion que tomaria en la univ el conocimiento adquirido seria muy valioso gracias Dios te bendiga y exitos...

Etiquetas: configuraciòn, programacion, proxy, servidores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:28.