连接未在客户端服务器程序中建立

时间:2015-07-24 14:25:41

标签: java sockets

我对java的socket编程很新。我开发了一个简单的客户端服务器程序,它涉及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

1 个答案:

答案 0 :(得分:1)

我觉得问题出在你的服务器代码中。您的服务器循环接受:

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

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