Я хочу установить отношение Клиент / Сервер в 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();