【问题标题】:Connection not establish in for client server program客户端服务器程序未建立连接
【发布时间】: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跨度>

标签: java sockets


【解决方案1】:

在我看来问题出在您的服务器代码中。您的服务器在接受时循环:

 while(true)
    {
      socket = server.accept();
    }

所以你接受了套接字并且什么都不做,并且永远不会到达处理套接字流的代码。您需要从该循环内的套接字读取/写入,可能跨越一个线程来处理套接字,同时继续等待另一个客户端。

【讨论】:

  • 我在这里看了一些评论后发现了一些有趣的东西,所以我需要同时实现knock knock协议和java线程还是我只能使用java线程来实现它?
猜你喜欢
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2012-04-24
  • 2011-05-20
  • 2013-04-10
  • 2013-05-07
相关资源
最近更新 更多