首页 > 解决方案 > Java - 拒绝连接的套接字 - 使用 IDE Netbeans

问题描述

已解决= 我的服务器代码需要放置在正确的位置。外部 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);
    }
}

标签: javasocketsnetbeans

解决方案


这里:

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

等待一个客户端连接。然后你的run()方法处理那个客户......然后结束!

如果您希望您的代码再次等待,您需要在代码的那部分周围放置一个循环。

换句话说:您编写的代码将打开一个服务器套接字,等待传入的连接,处理它,然后......消失。如果您想随着时间的推移为多个客户端提供服务,那么只要“服务器”程序启动并运行,就需要用一个持续等待新客户端的循环替换“消失”部分。


推荐阅读