我正在尝试通过我的电脑上的端口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");
}
}
}