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

Solicitud de archivo

Estas en el tema de Solicitud de archivo en el foro de Java en Foros del Web. Hola... Es complicado hacer, o mejor dicho alguien conoce ya algo hecho sobre esto XD de algun codigo donde cualquier ip se puede conectar a ...
  #1 (permalink)  
Antiguo 27/08/2008, 23:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Solicitud de archivo

Hola...

Es complicado hacer, o mejor dicho alguien conoce ya algo hecho sobre esto XD de algun codigo donde cualquier ip se puede conectar a la mia mediante un port y pedirme un archivo mediante un protocolo establecido, y yo se lo paso.....

es algo muy comun, tiene que existir algun code :P

pd: osea tengo que atender a todas las conexiones que se conecten a ese port que abri.... osea, me tengo que dar cuenta cuando alguien se conecta pq es pq me solicita algo..... y bueno, se lo doy.

Última edición por razer; 27/08/2008 a las 23:25
  #2 (permalink)  
Antiguo 28/08/2008, 12:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Solicitud de archivo

Cita:
Iniciado por razer Ver Mensaje
Hola...

Es complicado hacer, o mejor dicho alguien conoce ya algo hecho sobre esto XD de algun codigo donde cualquier ip se puede conectar a la mia mediante un port y pedirme un archivo mediante un protocolo establecido, y yo se lo paso.....

es algo muy comun, tiene que existir algun code :P

pd: osea tengo que atender a todas las conexiones que se conecten a ese port que abri.... osea, me tengo que dar cuenta cuando alguien se conecta pq es pq me solicita algo..... y bueno, se lo doy.
Hola,



Creo que se llama HTTP ó FTP.

Saludos,
  #3 (permalink)  
Antiguo 28/08/2008, 13:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Solicitud de archivo

Socket cliente = socket.accept();

InputStream entrada = cliente.getIntputStream();
OutputStream salida = cliente.getOutputStream();

socket.accept se queda esperando hasta que un usuario se conecte, si mal no entendi. y luego leo lo que el usuario me dijo... si estoy trabajando sobre un protocolo, segun lo que lea voy a hacer cosas diferentes.

creo que esta bien eso no? :)
saludos

pd: igual quiero atender las conexiones de un determinado port, y no veo ningun lado donde se lo especifico..... :S

Última edición por razer; 28/08/2008 a las 14:10
  #4 (permalink)  
Antiguo 28/08/2008, 15:03
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Solicitud de archivo

Hola,

Supongo que básicamente está bien.
El puerto lo indicas constructor de java.net.ServerSocket(int port)

Saludos.

ps:

Un código algo antiguo (lo hice hace un par de años) posiblemente se pueda optimizar con el nuevo JDK :

Código:
public class JServer extends JThread {
    .... +code ....
    public void run() {
        running = true;
        
        try { server = new ServerSocket(port); }
        catch (IOException e) { running = false; }
        
        while(running) {
            try {
                Socket socket = server.accept();
                
                if(running)
                    try { handleConnection(socket); }
                    catch (IOException e) {
                        try { socket.close(); }
                        catch (IOException es) {}
                    }
            } catch (IOException e) {
                running = false;
            }
        }
        
        users.killAllUsers();
    }
    .... +code ....
    private synchronized void handleConnection(Socket socket) throws IOException {
        if(running) {
            String hostname = socket.getInetAddress().getHostName();
            String hostaddr = socket.getInetAddress().getHostAddress();
            
            if(!serverFull(socket))
                if(!overConnected(socket, hostname, hostaddr))
                    if(!bannedConnection(socket, hostname, hostaddr))
                        users.handleConnection(socket);
        }
    }
    .... +code ....
}

public class JSocket extends JObject {
    .... +code ....
    public void open() throws IOException {
        out = new PrintStream(socket.getOutputStream(), JConfig.SOCKET_AUTOFLUSH);
        in = new BufferedReader(new InputStreamReader(socket.getInputStream(), JConfig.SOCKET_ENCODING));
    }
    .... +code ....
}
Otra parte importante de JServer

Código:
    public synchronized void stops() {
        if(running) {
            running = false;
            try { server.close(); }
            catch (IOException e) {}
        }
    }

Última edición por HackmanC; 28/08/2008 a las 15:23 Razón: close()
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 23:26.