【发布时间】:2015-07-24 22:34:24
【问题描述】:
我对 Java 的套接字编程非常陌生。我开发了一个涉及 actionListener 的简单客户端服务器程序。单击加入按钮后无法建立连接,我的客户端程序没有对我做出任何响应。当我首先运行我的服务器程序时,服务器程序会在程序中响应一些初始消息以指示服务器正在启动,但是当我运行我的客户端程序并尝试连接到服务器时,它不会响应任何内容。此外,该程序正在我的 PC 中使用两个 CMD 进行测试
我尝试了几种方法,例如 flush()、close(),但它也不起作用
Simple client server program not working
这是我的问题的参考来源之一
这是我的客户程序的一部分
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
{
try
{
Socket s = new Socket("127.0.0.1",8888); //initialize the socket in client
DataInputStream input = new DataInputStream(s.getInputStream()); // receive message from server
DataOutputStream output = new DataOutputStream(s.getOutputStream()); // send the message to server
String word = input.readUTF(); // read the input from server
JOptionPane.showMessageDialog(null,word); // display the message
output.flush();
output.close();
btn2.setVisible(true);
btn3.setVisible(true);
btn4.setVisible(true);
}
catch(IOException exp)
{
JOptionPane.showMessageDialog(null,"Client : Can't Connect To Server, Please Try Again");
}
}
这是我的服务器程序
http://codepad.org/AlUr9Qi1
【问题讨论】:
-
你有什么例外吗?如果是这样,请将它们添加到问题中。如果您通过 OptionPane 在屏幕上收到消息说您无法连接。然后只需在其上方添加另一行,即.... exp.printStackTrace();这应该会给你足够的信息来了解正在发生的事情。如果没有,请在此处发布堆栈跟踪,我相信有人可以提供帮助。
-
不,它就这样挂了,这就是为什么我无法追踪我的程序的哪个部分产生了问题
-
通过docs.oracle.com/javase/tutorial/networking/sockets/index.html,尤其是最后关于编写服务器的部分,那么应该清楚你做错了什么:-)
-
嗨,Mateusz.. 我稍后会参考链接,我的测试环境是否正确,因为我先使用 Jcreator 进行,但我无法创建 Jar 文件,所以我改为使用 cmd跨度>