带框架的JAVA SocketServer

时间:2013-04-14 15:23:50

标签: java multithreading swing frame serversocket

我正在尝试创建具有框架的Java套接字服务器,其中显示了消息。

但是当我从帧构造函数运行服务器时,框架不会变得可见。

我的部分代码是:

调用框架:

    public static void main(String[] args) {

    java.awt.EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            try {
                new ServerForm().setVisible(true);
            } catch (IOException ex) {
                Logger.getLogger(Ship_Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    });

创建服务器:

    public ServerForm() throws IOException {
    initComponents();

    hipServer Server = new hipServer();

}

服务器构造函数:

 public ShipServer() throws IOException {
    ServerSocket listener = new ServerSocket(8901);
    System.out.println("Server is Running");
    try {
        while (true) {

          ...
         }
    } finally {
        listener.close();
    }
}

你能建议一些东西,运行服务器和活动框架吗?

2 个答案:

答案 0 :(得分:1)

避免在EDT中使用过程密集型代码,例如无限while循环。

看一下使用SwingWorker。在等待网络连接时,它不会阻止EDT。可以在doInBackground中管理ServerSocket功能。

答案 1 :(得分:0)

由于......

,您还需要为服务器创建一个线程
while(true)

......“从不”结束

OR

在创建服务器之前显示表单(确保它是可见的)。