如何用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
}