Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java制作服务器和客户端?_Java_Windows_Netbeans - Fatal编程技术网

如何用java制作服务器和客户端?

如何用java制作服务器和客户端?,java,windows,netbeans,Java,Windows,Netbeans,我正在制作一个服务器/客户端,但似乎有问题。当我单击按钮时,我似乎无法连接。请帮助。不确定我做错了什么。请随意编辑代码来修复它,然后请发表评论。我有一个连接按钮和一个发送按钮。我认为这与突出显示的代码有关,但它可能是任何东西。我知道这不是很具体,但基本上这是代码,它不工作。我无法连接。请帮忙 客户 问题/突出部分到此结束 private void btn_SendActionPerformed(java.awt.event.ActionEvent evt) { String

我正在制作一个服务器/客户端,但似乎有问题。当我单击按钮时,我似乎无法连接。请帮助。不确定我做错了什么。请随意编辑代码来修复它,然后请发表评论。我有一个连接按钮和一个发送按钮。我认为这与突出显示的代码有关,但它可能是任何东西。我知道这不是很具体,但基本上这是代码,它不工作。我无法连接。请帮忙

客户

问题/突出部分到此结束

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

    String nothing = ""; 
    if ((txtMsg.getText()).equals(nothing)){

       txtMsg.setText("");

       txtMsg.requestFocus();

    } else {
        try{
            writer.println(username + "^" + txtMsg.getText() + "^" 
                    + "Chat");
            writer.flush();
        } catch (Exception ex){
            txtChat.append("Message was not sent\n");
        }
        txtMsg.setText("");
        txtMsg.requestFocus();

    }
有几件事:

您将获得一个java.net.ConnectionException,请参见下文,因为连接被拒绝。这可能是因为您尝试连接的服务器未运行、服务器未接受客户端连接、客户端无法访问服务器,或者您连接到了错误的端口号

直接捕获异常通常是不好的编码实践。您希望捕获在本例中可以抛出的各种异常中范围最为特定的异常IOException,或者单独捕获每个可能的异常,这是首选方法。在更一般的异常之前捕获最具体的异常,以便它们不会被掩盖。此外,最好使用Throwable类的getMessage方法,以便您能够找出引发异常的原因。例如:

} catch (java.net.ConnectException ex) {
    System.err.println("ConnectException: " + ex.getMessage()); // May return "Connection refused", "Connection timed out", "Connection reset", etc.
} catch (java.rmi.UnknownHostException ex) {
    System.err.println("UnknownHostException: " + ex.getMessage()); // Returns the name of the host you were attempting to connect to
} catch (...) {
    // code here
} catch (java.io.IOException ex) {
    System.err.println("IOException: " + ex.getMessage()); // May return a problem with the BufferedReader or InputStreamReader or PrintWriter
}
当然,catch子句中的语句可以根据您的喜好进行修改


我想这与突出显示的代码有关。你能指定突出显示的代码是什么吗?我已经编辑了它,现在它显示了突出显示的部分,请现在帮助我单击按钮时会发生什么?您是否收到错误消息?什么都没有?当我点击它时,它说不能连接。我不知道怎么了。我只是无法将服务器程序与客户端程序连接在同一台机器上,还是连接到另一台机器上?我可能需要稍微修改一下我的答案。。。
private void btn_SendActionPerformed(java.awt.event.ActionEvent evt) {     

    String nothing = ""; 
    if ((txtMsg.getText()).equals(nothing)){

       txtMsg.setText("");

       txtMsg.requestFocus();

    } else {
        try{
            writer.println(username + "^" + txtMsg.getText() + "^" 
                    + "Chat");
            writer.flush();
        } catch (Exception ex){
            txtChat.append("Message was not sent\n");
        }
        txtMsg.setText("");
        txtMsg.requestFocus();

    }
} catch (java.net.ConnectException ex) {
    System.err.println("ConnectException: " + ex.getMessage()); // May return "Connection refused", "Connection timed out", "Connection reset", etc.
} catch (java.rmi.UnknownHostException ex) {
    System.err.println("UnknownHostException: " + ex.getMessage()); // Returns the name of the host you were attempting to connect to
} catch (...) {
    // code here
} catch (java.io.IOException ex) {
    System.err.println("IOException: " + ex.getMessage()); // May return a problem with the BufferedReader or InputStreamReader or PrintWriter
}