ServerSocket получает только последний запрос - PullRequest
0 голосов
/ 25 января 2020

Я хочу установить отношение Клиент / Сервер в Java. Когда сервер отправляет данные, сервер не получает их. Но когда клиент отправил данные во второй раз, сервер получил первые отправленные данные.

Это сторона клиента:

Socket s = new Socket("example.com", 3999);
DataOutputStream os = new DataOutputStream(s.getOutputStream());
os.write(msg.getBytes());
os.flush();

BufferedReader is = new BufferedReader(new InputStreamReader(s.getInputStream()));
String responseLine = is.readLine();
System.out.println("Response: " + responseLine);

os.close();
is.close();
s.close();

Сторона сервера:

ServerSocket socket = new ServerSocket(3999);

while (isRunning) {
    Socket so = socket.accept();
    BufferedReader reader = new BufferedReader(new InputStreamReader(so.getInputStream()));
    StringBuffer sb = new StringBuffer();
    String str;
    while ((str = reader.readLine()) != null) {
        sb.append(str);
    }
    String msg = sb.toString();
    System.out.println("Received: " + msg);
    DataOutputStream dOut = new DataOutputStream(so.getOutputStream());
    dOut.writeUTF("msg received");
    dOut.flush();
    dOut.close();
    so.close();
}
socket.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...