我的Java服务器端没有从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
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())*李>
祝您好运您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题
- System.out.println(“echo:+in.readLine())*李>
祝您好运您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题
- System.out.println(“echo:+in.readLine())*李>
祝您好运您的客户端没有向服务器发送任何新行。尝试从服务器读取响应时遇到了问题
- System.out.println(“echo:+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;
}
}
好了,现在我的服务器运行得很好。现在我有一个安卓客户端,当我发送一条消息时,服务器程序会显示消息,然后显示服务器术语