Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字服务器仅显示连接关闭后收到的消息_Java_Sockets_Tcp_Server_Message - Fatal编程技术网

Java套接字服务器仅显示连接关闭后收到的消息

Java套接字服务器仅显示连接关闭后收到的消息,java,sockets,tcp,server,message,Java,Sockets,Tcp,Server,Message,我正在尝试为一个简单的服务器编写一个代码,该服务器接收来自客户端的消息。连接成功,但一旦服务器与客户端连接,消息就不会显示在屏幕上。在我从客户端关闭连接后,服务器一次性接收所有消息 我需要一行一行地接收消息,因为每一行都需要单独和实时地去处理(我使用HMM来识别司机的动作) 有人能告诉我我做错了什么吗 非常感谢 public static void main(String args[]) { ServerSocket my_server = null; String recei

我正在尝试为一个简单的服务器编写一个代码,该服务器接收来自客户端的消息。连接成功,但一旦服务器与客户端连接,消息就不会显示在屏幕上。在我从客户端关闭连接后,服务器一次性接收所有消息

我需要一行一行地接收消息,因为每一行都需要单独和实时地去处理(我使用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);
    }
}   

客户端,是否刷新输出流


关闭连接时,将刷新所有剩余数据,但在此之前,只有当有足够的“等待”数据要发送时,才会刷新这些数据。

客户端,是否刷新输出流


关闭连接时,会刷新所有剩余数据,但在此之前,只有当有足够的“等待”数据要发送时,才会刷新这些数据。

我设法找到了一个解决方案,我想在这里分享

我的客户机是一个VisualBasic应用程序,我有一个Java服务器。客户端发送的消息没有行尾字符,因此entrada.readLine()为空;将在显示消息之前等待消息结束的信号(从未发生过)。 解决方案是在客户端消息的末尾添加一个行尾字符,最后一切都很顺利


谢谢你的回答。

我设法找到了一个解决方案,我想在这里与大家分享

我的客户机是一个VisualBasic应用程序,我有一个Java服务器。客户端发送的消息没有行尾字符,因此entrada.readLine()为空;将在显示消息之前等待消息结束的信号(从未发生过)。 解决方案是在客户端消息的末尾添加一个行尾字符,最后一切都很顺利


谢谢您的回答。

您知道
flush
方法吗?您可以在套接字(客户端或服务器端)中写入后使用它。您知道
flush
方法吗?在套接字中写入后可以使用它(客户端或服务器端)