我的Java服务器端没有从Java客户端读取多条传入消息

我的Java服务器端没有从Java客户端读取多条传入消息,java,client-server,Java,Client Server,我用Java创建简单的程序服务器客户端 我的服务器是 public class Server { private static ServerSocket serverSocket; private static Socket clientSocket; private static BufferedReader bufferedReader; private static String inputLine; /** * @param args the command line argu

我用Java创建简单的程序服务器客户端 我的服务器是

public class Server {
    private static ServerSocket serverSocket;
private static Socket clientSocket;
private static BufferedReader bufferedReader;
private static String inputLine;
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
   try
    {
        serverSocket = new ServerSocket(5000);
        clientSocket = serverSocket.accept();
        // Create a reader
         bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        // Get the client message
        while((inputLine = bufferedReader.readLine()) != null)
        System.out.println(inputLine); //Print
            }catch(IOException e){
        System.out.println(e);
    }
}
} 客户端是:

public class Client {
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    String hostName = "localhost";
    try (
            Socket echoSocket = new Socket(hostName, 5000);
            PrintWriter out = new PrintWriter(echoSocket.getOutputStream(), true);
            BufferedReader in= new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {
        String userInput;
        while ((userInput = stdIn.readLine()) != null) {
            out.println(userInput);
            System.out.println("echo: " + in.readLine());
        }
    } catch (UnknownHostException e) {
        System.err.println("Don't know about host " + hostName);
        System.exit(1);
    } catch (IOException e) {
        System.err.println("Couldn't get I/O for the connection to " + hostName);
        System.exit(1);
    }

}
}


为什么我的服务器不再读取?当我调试程序时,我的程序在服务器中运行时会跳出循环..我不知道为什么你的服务器看起来很正常。服务器无法多次读取的原因是客户端的这一行:

System.out.println("echo: " + in.readLine());

客户机需要服务器的答复,但您的服务器不发送任何回复。因此,请删除上面的行或让服务器发送响应。

您的服务器似乎正常。服务器无法多次读取的原因是客户端的这一行:

System.out.println("echo: " + in.readLine());

客户机需要服务器的答复,但您的服务器不发送任何回复。因此,请删除上面的行或让服务器发送响应。

您的服务器似乎正常。服务器无法多次读取的原因是客户端的这一行:

System.out.println("echo: " + in.readLine());

客户机需要服务器的答复,但您的服务器不发送任何回复。因此,请删除上面的行或让服务器发送响应。

您的服务器似乎正常。服务器无法多次读取的原因是客户端的这一行:

System.out.println("echo: " + in.readLine());

客户机需要服务器的答复,但您的服务器不发送任何回复。因此,请删除上面的行或让服务器发送响应。

您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题

  • System.out.println(“echo:+in.readLine())*
您有两个选项来修复此问题

1-将服务器中的响应发送回客户端 2-删除in.readLine()中的


祝您好运

您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题

  • System.out.println(“echo:+in.readLine())*
您有两个选项来修复此问题

1-将服务器中的响应发送回客户端 2-删除in.readLine()中的


祝您好运

您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题

  • System.out.println(“echo:+in.readLine())*
您有两个选项来修复此问题

1-将服务器中的响应发送回客户端 2-删除in.readLine()中的


祝您好运

您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题

  • System.out.println(“echo:+in.readLine())*
您有两个选项来修复此问题

1-将服务器中的响应发送回客户端 2-删除in.readLine()中的


祝你好运

好了,现在我的服务器运行得很好。现在我有一个安卓客户端,当我发送一条消息时,服务器程序会显示消息,然后服务器终止>。。这是我按下按钮时android程序中的程序

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                messsage = textField.getText().toString(); // get the text message on the text field
                textField.setText(""); // Reset the text field to blank
                SendMessage sendMessageTask = new SendMessage();
                sendMessageTask.execute();


            }
        });
    }
        private class SendMessage extends AsyncTask<Void, Void, Void> {

            @Override
            protected Void doInBackground(Void... params) {
                try {

                    client = new Socket("192.168.2.3", 5000); // connect to the server
                    printwriter = new PrintWriter(client.getOutputStream(), true);
                    printwriter.write(messsage); // write the message to output stream

                    printwriter.flush();
                    printwriter.close();
                  //  client.close(); // closing the connection

                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

        }
button.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
message=textField.getText().toString();//获取文本字段上的文本消息
textField.setText(“”;//将文本字段重置为空白
SendMessage sendMessageTask=新建SendMessage();
sendMessageTask.execute();
}
});
}
私有类SendMessage扩展异步任务{
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
client=newsocket(“192.168.2.3”,5000);//连接到服务器
printwriter=新的printwriter(client.getOutputStream(),true);
write(message);//将消息写入输出流
printwriter.flush();
printwriter.close();
//client.close();//关闭连接
}捕获(未知后异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
}

好了,现在我的服务器运行得很好。现在我有一个安卓客户端,当我发送一条消息时,服务器程序会显示消息,然后服务器终止>。。这是我按下按钮时android程序中的程序

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                messsage = textField.getText().toString(); // get the text message on the text field
                textField.setText(""); // Reset the text field to blank
                SendMessage sendMessageTask = new SendMessage();
                sendMessageTask.execute();


            }
        });
    }
        private class SendMessage extends AsyncTask<Void, Void, Void> {

            @Override
            protected Void doInBackground(Void... params) {
                try {

                    client = new Socket("192.168.2.3", 5000); // connect to the server
                    printwriter = new PrintWriter(client.getOutputStream(), true);
                    printwriter.write(messsage); // write the message to output stream

                    printwriter.flush();
                    printwriter.close();
                  //  client.close(); // closing the connection

                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

        }
button.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
message=textField.getText().toString();//获取文本字段上的文本消息
textField.setText(“”;//将文本字段重置为空白
SendMessage sendMessageTask=新建SendMessage();
sendMessageTask.execute();
}
});
}
私有类SendMessage扩展异步任务{
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
client=newsocket(“192.168.2.3”,5000);//连接到服务器
printwriter=新的printwriter(client.getOutputStream(),true);
write(message);//将消息写入输出流
printwriter.flush();
printwriter.close();
//client.close();//关闭连接
}捕获(未知后异常e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
}

好了,现在我的服务器运行得很好。现在我有一个安卓客户端,当我发送一条消息时,服务器程序会显示消息,然后显示服务器术语