Я пытаюсь закодировать соединение клиента и сервера, используя сокет.Проблема в том, что мой клиент не может прочитать ответ с сервера (он зависает на readline).
Вот часть кода.
Сервер:
try {
// Create the server socket.
portNumber = Integer.parseInt(myParam.get("socket.portNumber"));
System.out.println(portNumber);
mainSocket = new ServerSocket(portNumber);
} catch (IOException ioe) {
System.out.println("Error Message : "+ioe.getMessage());
}
while(true)
{
try
{
// Accept connections
Socket clientSocket = mainSocket.accept();
SocketServerThread st = new SocketServerThread (clientSocket);
st.start();
}
catch(IOException ioe)
{
System.out.println("Error message :"+ioe.getMessage());
}
}
Тема:
public void run() {
BufferedReader in = null;
PrintWriter out = null;
String clientResponse = null;
try {
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
//Read The Message
String clientRequest = in.readLine();
System.out.println("Message recieved : " + clientRequest);
//Process the message
// Send response
out.println(clientResponse+"\n");
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
// Clean up
try {
in.close();
out.close();
clientSocket.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
Клиент:
try {
// Create the server socket.
simSocket = new Socket("192.168.52.27", portNumber);
} catch (IOException ioe) {
System.out.println("Error Message : " + ioe.getMessage());
}
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(new InputStreamReader(simSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(simSocket.getOutputStream()));
out.write("My message");
out.flush();
do{
response = in.readLine(); //This is where the code hang
}while (response.length()<= 0);
System.out.print(response);
} catch (IOException ioe) {
System.out.println("Error message :" + ioe.getMessage());
} finally {
try {
in.close();
out.close();
simSocket.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
Не могли бы вы, ребята, сказать мне, в чем проблема?Большое спасибо за любую помощь