繁体   English   中英

聊天服务器 - 客户端/服务器聊天Java功课

[英]Chat Server - client/server chat Java homework

我的聊天室程序。 我有2个包,1个用于客户端和其他用于服务器。 运行Server程序,填写PortField并单击Start Server按钮,窗口程序卡住,我无法对其进行任何操作,但Server仍然正常工作,客户端仍然连接并聊天。

private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {                                        

    int port = Integer.parseInt(txtPort.getText());
    go(port);
}                                       
private void go(int port){
    try {
        listUser = new Hashtable<String, ClientConnect>();
        server = new ServerSocket(port);
        txaStatus.append("Server is started\n");
        txaStatus.append("IP Server : "+InetAddress.getLocalHost().getHostAddress()+"\n");
        txaStatus.append("Port : " + port + "\n");
        while(true){
            client = server.accept();
            new ClientConnect(this,client);//class ClientConnect for DataOutPut & DataInput Client <=> Server
        }
    } catch (IOException e) {
        txaStatus.append("Server cannot start\n");
                    JOptionPane.showMessageDialog(this,"Port busy","warning",JOptionPane.WARNING_MESSAGE);
                    System.exit(0);
    }
}

您无法在GUI线程中运行服务器,这将阻止程序接受任何其他输入。 您需要将go()方法移动到单独的线程中。

我认为考虑到这项任务的性质,假设你已经被引入多线程是安全的。 这听起来是尝试其中一些的好时机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM