[Problema] Conction refused

Iniciado por O-LLOS-O, 25 Agosto 2010, 15:01 PM

0 Miembros y 1 Visitante están viendo este tema.

O-LLOS-O

Hola a todos, ya no se que hacer haber si alguien me puede hechar un cable:

Miren tengo una apliacion cliente/servidor con los siguientes codes:

Código (java) [Seleccionar]
package Sockets;

import java.io.*;
import java.net.*;
import java.util.*;

public class Cliente2 {

    private String HOST = "localhost";
    private int PUERTO = 7000;
    private String IP = "MI IP PUBLICA";

    public Cliente2(){
        try{
            Socket so = new Socket(IP, PUERTO);

            DataInputStream flujoIn1 = new DataInputStream(so.getInputStream());
            System.out.println(flujoIn1.readUTF());

            Scanner cin = new Scanner(System.in);
           
            DataOutputStream flujoOut1 = new DataOutputStream(so.getOutputStream()) ;

            String p = "";
            while (p != "Exit"){
               p =  cin.nextLine();
               flujoOut1.writeUTF(p);
            }
            so.close();
        }catch(Exception e){ System.out.println(e.getMessage());}
    }

    public static void main(String [] a){
        Cliente2 c2 = new Cliente2();

    }
}


Y el server:

Código (java) [Seleccionar]
package Sockets;

import java.net.*;
import java.util.*;
import java.io.*;

public class Servidor2 {

    public Servidor2(){
        try{
            ServerSocket ss = new ServerSocket( 7000);
            System.out.println("El servidor esta escuchando en el puerto: 7000");

            Socket c = ss.accept();

            System.out.println("Se ha conectado con el cliente");


            DataInputStream flujoIn2 = new DataInputStream(c.getInputStream());
            DataOutputStream flujoOut2 = new DataOutputStream(c.getOutputStream());

            System.out.println("1");
            flujoOut2.writeUTF("La conexion se ha establecido, preparado para recibir frases");
            System.out.println("2");

            String s = "";
            while (s != "Salir"){
                s = flujoIn2.readUTF();
                System.out.println(s);
            }

        }catch(Exception e){System.out.println(e.getMessage());}

    }

    public static void main(String[] s){
        Servidor2 s2 = new Servidor2();
    }

}


En si en vez de poner la ip publica pongo localhost, si que va, pero yo quiero que funcione por internet... es decir de ordenador a ordenador....

me salta el error conexion refused, en principio el puerto esta abierto...

Haber si a alguien le ha pasado antes y puede ayudarme MERCY!!

Saludos.

Debci

#1
Aparte de tener el puerto abierto (lo omito, pues dices que ya esta ok?) asegurate de que no tienes nada corriendo en ese, fijate si tienes un firewall que impida conexiones entrantes en el pc servidor.
POr cierto me he fijado en el codigo, y hacer un algoritmo en un constructor de clase nunca fue una buena idea, metelo en un método aparte y hablaremos de algo serio :)
Enserio, cambia eso, yo en su momento tube problemas con ese tipo de cosas.
Comenta lo que ocurra y te ayudaremos en la medida posible.

Saludos

O-LLOS-O

Cita de: Debci en 25 Agosto 2010, 15:05 PM
Aparte de tener el puerto abierto (lo omito, pues dices que ya esta ok?) asegurate de que no tienes nada corriendo en ese, fijate si tienes un firewall que impida conexiones entrantes en el pc servidor.

Saludos

Corro en linux, sabeis si eso se puede comprovar con algun comando o algo... aunque eso sea del router :huh:,  Y por el tema de puerto, en principio si e seguido esta pagina: http://www.adslzone.net/tutorial-44.8.html, pero con un custom server.

Mecy y Saludos

Debci

Cita de: O-LLOS-O en 25 Agosto 2010, 15:11 PM
Cita de: Debci en 25 Agosto 2010, 15:05 PM
Aparte de tener el puerto abierto (lo omito, pues dices que ya esta ok?) asegurate de que no tienes nada corriendo en ese, fijate si tienes un firewall que impida conexiones entrantes en el pc servidor.

Saludos

Corro en linux, sabeis si eso se puede comprovar con algun comando o algo... aunque eso sea del router :huh:,  Y por el tema de puerto, en principio si e seguido esta pagina: http://www.adslzone.net/tutorial-44.8.html, pero con un custom server.

Mecy y Saludos
Hazlo con custom server pues noc reo que tu programa este en esa lista :S
Puedes hacer un netstat o mirar con algun monitor de red.
Te recomiendo hacerte a ti mismo un Nmap para ver que tienes funcionando en tu pc.

Saludos

O-LLOS-O

vale, e provado con esta pagina: http://www.t1shopper.com/tools/port-scan/ para ir viendo si tengo el puerto escuchando.

y no detecta nada en el puerto que le digo por lo tanto estare abriendo mal el puerto

Y no se que hacer, tengo un router compred, como el que hay en el link de antes y hago lo que dicen para abrir el puerto... aparte pongo este comando en la consola:
iptables -A INPUT -p tcp --dport 8700 -j ACCEPT  (DONDE 8700 es el puerto) que ara estoy provando en ese puerto...

Y nada.

Debci

Cita de: O-LLOS-O en 25 Agosto 2010, 16:56 PM
vale, e provado con esta pagina: http://www.t1shopper.com/tools/port-scan/ para ir viendo si tengo el puerto escuchando.

y no detecta nada en el puerto que le digo por lo tanto estare abriendo mal el puerto

Y no se que hacer, tengo un router compred, como el que hay en el link de antes y hago lo que dicen para abrir el puerto... aparte pongo este comando en la consola:
iptables -A INPUT -p tcp --dport 8700 -j ACCEPT  (DONDE 8700 es el puerto) que ara estoy provando en ese puerto...

Y nada.
Deberias abrir dicho puerto en modo TCP, introduciendo tu IP interna, suele estar e la zona nat, virtual server o port mapping.

Saludos

O-LLOS-O

#6
si eso lo hago, para seber mi ip interna hago unn ifconig y pongo esoa, que es una estilo 192.168.1.*... y nada. HHago exactamente eso i no me da me estoy volviendo loco.

Mi ip public es estatica no se si tendra algo que ver, y tambien hay mas de un ordenador conectado a esta red...

Mercy.

Debci

Cita de: O-LLOS-O en 25 Agosto 2010, 17:29 PM
si eso lo hago, para seber mi ip interna hago unn ifconig y pongo esoa, que es una estilo 192.168.1.*... y nada. HHago exactamente eso i no me da me estoy volviendo loco.

Mi ip public es estatica no se si tendra algo que ver, y tambien hay mas de un ordenador conectado a esta red...

Mercy.
Pudiese ser que si te conectas usando tu IP publica los ordenadores locales tengan algo corriendo en ese puerto :S
DE todos modos yo apunto a que no abres bien el puerto tienes un firewall bloqueandote.
Saludos