клиент не может подключиться с другого ip - PullRequest
0 голосов
/ 06 сентября 2011

Я написал простое клиент-серверное приложение.Это очень хорошо работает на моем компьютере.но когда мой друг пытается подключиться к моему серверу, он не может.Я создаю сервер на своем компьютере с портом 23. Вот часть создания сервера:

public Server(int port_number) throws IOException{

        create_Server(port_number);
    }

    public static void main(String[] args) throws IOException {

        int port_number=23;

        new Server(port_number);
    }

    private void create_Server(int port_number) throws IOException{

        ss = new ServerSocket(port_number);

        System.out.println("Server is ready!");

        while(true){

            s=ss.accept();

            System.out.println(s.getLocalAddress().getHostName() + " was connected!");

                        send_con_mes();

            list.put(s,new DataOutputStream(s.getOutputStream()) );

            new ServerThread(s,this).start();
        }

    }

, а вот клиентская часть;

public void start_Chat() {

    try {

        Ip_addr = JOptionPane.showInputDialog("Enter the IP number of the server to connect : ");
        s = new Socket(Ip_addr, 23);

        Client_name = JOptionPane.showInputDialog("Enter your Nickname : ");

        dis = new DataInputStream(s.getInputStream());         
        dos = new DataOutputStream(s.getOutputStream());
        new Thread(Client.this).start();

хорошо, я могу говорить,отправлять личные сообщения и т. д. Когда я подключаюсь к серверу на своем компьютере в качестве клиентов, но последняя проблема заключается в том, что клиент с другого IP-адреса не может подключиться.

1 Ответ

1 голос
/ 06 сентября 2011

Вы должны настроить свою сеть, чтобы разрешить доступ к этому порту.Это означает включение брандмауэра на вашем ПК, а также на маршрутизаторах и т. Д. В Java вы ничего не можете сделать, чтобы избежать необходимости получить это право первым.

РЕДАКТИРОВАТЬ: если другая машина пытается подключиться к вам черезВ интернет-роутере им придется использовать ваш общедоступный IP-адрес, а не ваш внутренний адрес ПК.Если вы не знаете свой публичный адрес, вы можете использовать такой сайт, как http://whatismyipaddress.com/. Если у вас нет статического IP-адреса, он может измениться при повторном подключении.(Одна из причин оставаться на связи все время)

...