我正在嘗試編寫簡單服務器的代碼,該服務器接收來自客戶端的消息。連接成功,但是一旦服務器連接到客戶端,消息就不會顯示在屏幕上。在關閉客戶端的連接後,服務器一次接收所有消息。Java套接字服務器僅顯示連接關閉後收到的消息
我需要逐行接收消息,因爲每一行都需要單獨實時處理(我正在使用HMM進行驅動程序的動作識別)。
有人能告訴我我做錯了什麼嗎?
非常感謝您。
public static void main(String args[]) {
ServerSocket my_server = null;
String received_message;
DataOutputStream output = null;
Socket socket_connected = null;
try {
my_server = new ServerSocket(9090);
}
catch (IOException excepcion) {
System.out.println(excepcion);
}
try {
socket_connected = my_server.accept();
BufferedReader entrada = null;
while (socket_connected.isConnected() == true){
entrada = new BufferedReader(new InputStreamReader(socket_connected.getInputStream()));
output = new DataOutputStream(socket_connected.getOutputStream());
System.out.println("Confirmando conexion al cliente....");
received_message = entrada.readLine();
System.out.println(received_message);
entrada.close();
output.close();
}
socket_connected.close();
}
catch (IOException excepcion) {
System.out.println(excepcion);
}
}
你知道'flush'方法嗎?您可以在套接字(客戶端或服務器端)寫入後使用它 –