Java - сокет отказа в соединении - использование IDE Netbeans - PullRequest
0 голосов
/ 08 декабря 2018

решено = код моего сервера нужно разместить в нужном месте.Outside EventQueue.Invokeletter {});


Когда я запускаю клиент и нажимаю кнопку входа в систему, клиент не может подключиться к серверу.
При первом использовании я работаю, но безпричина, по которой мой Клиент не может подключиться к Серверу.
Что я должен сделать, чтобы сделать это правильно?

Код Сервера

public static void main(String args[]) {  
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                new mainmenu().setVisible(true);
                ServerSocket ss=new ServerSocket(1234);                       
                    Socket socket1=ss.accept();
            } catch (IOException ex) {
                Logger.getLogger(mainmenu.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    });
}

Код Клиента

private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        Socket cs = new Socket("localhost", 1234);
    } catch (IOException ex) {
        Logger.getLogger(mainclient.class.getName()).log(Level.SEVERE, null, ex);
    }
}

1 Ответ

0 голосов
/ 08 декабря 2018

Здесь:

ServerSocket ss=new ServerSocket(1234); 
Socket socket1=ss.accept();

Ожидает подключения одного клиента.Тогда ваш run() метод работает с этим клиентом ... и заканчивается!

Если вы хотите, чтобы ваш код снова ожидал , вам нужно поместить loop вокруг этой части вашего кода.

Другими словами:Вы написали код, который откроет сокет сервера, дождется входящего соединения, обработает это и затем ... исчезнет.Если вы хотите обслуживать более одного клиента с течением времени, эту «исчезающую» часть необходимо заменить циклом, который продолжает ждать новых клиентов, пока программа «сервер» запущена и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...