Server Socket不会在Java中接受()本地应用程序握手

时间:2014-02-24 17:55:53

标签: java sockets

我正在尝试通过我的电脑上的端口8000将客户端应用程序连接到我的代码。我正在使用ServerSocket库使用以下代码进行连接。客户端的应用程序通过端口发送XML消息,我需要连接,解释和响应。 (请注意,在阅读以下内容时,我还没有编码解释/回应)。

每次我尝试从客户端应用程序发送消息时(在eclipse中运行调试功能时),代码都会进入serverSocket.accept()方法,该方法应该是'握手'在客户端和服务器之间,不能再进一步。我无法明显更改客户端应用程序,因此需要弄清楚它为什么不接受连接。

package connect;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class PortListener2 {
    public static void main(String[] args){
            System.out.println("> Start");

        int portNumber = 8000;
        try (
            ServerSocket serverSocket =
                new ServerSocket(portNumber);
            Socket clientSocket = serverSocket.accept();     
            PrintWriter out =
                new PrintWriter(clientSocket.getOutputStream(), true);                   
            BufferedReader in = new BufferedReader(
                new InputStreamReader(clientSocket.getInputStream()));
        ) {
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
            System.out.println("Received: "+inputLine);
                out.println(inputLine);
                if (inputLine.equals("exit")){
                    break;
                }
            }
        } catch (Exception e) {
            System.out.println("Exception caught when trying to listen on port "
                + portNumber + " or listening for a connection");
            System.out.println(e.getMessage());
            e.printStackTrace();
        } finally {
            System.out.println("Disconnected");
        }
    }
}

0 个答案:

没有答案