套接字编程中的Java拖放问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了套接字编程中的Java拖放问题相关的知识,希望对你有一定的参考价值。

我一直在尝试使用java套接字开发软件,在使用Drag and Drop之前,我的代码就像我想要的那样工作。然而,在将它与拖放相结合后,我得到了意想不到的结果。以下是我的代码的服务器类的一些代码片段。

    public ServerFirstPage() {
    initComponents();
    this.setLocationRelativeTo(null);
    try {     
        System.out.println("in the try block");
                ServerSocket ss = new ServerSocket(3389);
                server = ss.accept();
                   // new generatePassword(server);

                    } catch (IOException ex) {

   Logger.getLogger(ServerFirstPage.class.getName()).log(Level.SEVERE, null, ex);
            }
}
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(ServerFirstPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(ServerFirstPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(ServerFirstPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(ServerFirstPage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {

             new ServerFirstPage().setVisible(true);
             System.out.println("entered");
        }
    });
}

首先,我应该提到主类和构造函数中的代码是由Netbeans生成的。我的问题是,当我在ServerFirstPage()中注释掉try-catch块然后运行我的代码时,我的代码的GUI部分会显示在我的屏幕上。但是当我没有注释掉那部分时,我的代码在屏幕上没有显示任何内容,因为如果我省略了try-catch部分,我的代码将无效,因为它是我的服务器连接到客户端的地方,我不是确定该做什么或如何解决问题。有什么建议?

答案

我相信您的套接字服务器正在等待连接。该代码应该在与事件派发线程不同的线程上运行。查看您的代码正在执行的操作并重新组织它。

以上是关于套接字编程中的Java拖放问题的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Java 中的套接字编程将发布数据(包含 2 个参数)发送到 https 服务器

linux 中 C++ 中的 UDP Socket 编程

在两个片段之间拖放?

请教套接字编程中的Accept()函数

Python 之 Socket编程(TCP/UDP)

如何拖放 recyclerView 元素?