我用Java创建简单的程序Server-Client我的服务器是

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);
    }

}

}

为什么我的服务器不再读取? 当我调试程序时,我的程序将在服务器中退出循环..我不知道为什么

#1楼 票数:1 已采纳

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

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

客户端希望从服务器得到答复,但是服务器不会发回任何东西。 因此,删除上面的行或使服务器发送响应。

#2楼 票数:1

您的客户端没有向服务器发送任何新行。 尝试读取服务器的响应时卡住了。

  • System.out.println(“ echo:” + in.readLine()); *

您有两个解决方案

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

祝你好运

#3楼 票数:1

好的,现在我的服务器可以完美运行了..现在我有一个客户端,在android中,当我发送一条消息时,服务器编程向我显示该消息,然后服务器终止> ..这是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;
            }

        }

  ask by Dimitris KOutsos translate from so

未解决问题?本站智能推荐:

1回复

客户端/服务器仅读取一条消息?

我的客户端/服务器可以完美地处理一条消息,然后不管接下来是什么,它都表示为空白。 我相信问题可以在这里或我的命令类中解决: 或在我的命令中: 编辑:由于调试时的某种原因,无论命令一次使用后,命令都是空白,因此它可能在我的主服务器类中: 和messageThread:
2回复

服务器端和客户端,Java

我尝试使客户端向服务器发送一些数据。 由于某种原因,它总是进入例外区域... 我只希望服务器接受数据。 之后,它需要执行此简单功能。 套接字,读取器和写入器的初始化可以。 客户端代码: 服务器端代码:
2回复

java程序客户端触发服务器端java程序

我计划创建一个包含2个部分的系统,第一部分将在客户端,而另一部分在服务器端。 这里有2个不同的程序正在运行,客户端将在数据库中保存数据并引发标志或触发器,这将成为服务器端部分从数据库启动和检索数据并在API中进行处理的原因。 最初,我决定在服务器端使用调度程序来连续运行程序,并使用“状态”
1回复

客户端为什么看不到服务器发送的第一条消息?[重复]

该问题与以下内容完全相同: 客户端未从服务器读取第一条消息[关闭] 首先,这是我的服务器。 请看这部分 在以上部分中,当至少两个客户端连接到服务器时,我将发送启动信号“开始”字符串。 服务器代码从这里开始。 现在,这是我在Java中的客户端 请看这部分...
1回复

Java客户端套接字:无法从服务器接收消息到客户端

所以这个问题现在已经让我头疼了几天。我正在制作一个多用户聊天应用程序。我的设计如下:1.有一个登录窗口。 2.输入详细信息后,客户端聊天窗口将打开。 3.现在用户开始输入。 4.一旦他按下回车键或单击发送按钮,该消息就会发送到服务器。 5,服务器将其发送给所有客户端,包括向其发送原始消息
1回复

Java:检测客户端与服务器端的连接

我正在使用Socket和ServerSocket编写Java客户端/服务器程序。 多个客户端一次连接到服务器。 检查客户端连接是否与服务器端断开连接的最佳方法是什么? 现在,我只是在尝试写入断开连接的客户端时遇到SocketException。
1回复

Java服务器客户端

正在为我的XO游戏编写服务器。 基本思想是,我有一台计算机作为具有静态ip的服务器运行,而其他计算机可以连接到它。 它需要能够将游戏状态发送给所有连接的客户端,但是我遇到了阻塞问题。 如果您看看客户端 正在阻止代码。 服务器能够将消息发送给所有客户端,但是当它等待传递Int以回
1回复

Java客户端服务器

这个问题困扰了我整整一天,我找不到它的修复程序。我正在用Java写一个聊天应用程序。问题是服务器无法向客户端发送消息,而只能接收消息。这是我的问题类: 服务器类: 这是我的客户舱的相关功能: 另外,服务器在发出第一条消息后停止接收来自客户端的任何消息。我认为可以通过将while()方