Я новичок в сетевой области. Я пытаюсь создать сервер, который будет получать SMS с моего телефона. SMS включает строку «time_stamp, msg ....». Проблема в том, что я могу видеть только заголовки сообщения, а не само сообщение, если я не отключу сервер, и тогда он не появится. Я использовал идеи Scanner и BufferReader, но результаты были те же.
Socket connectionSocket = serverSocket.accept();
System.out.println("received sms");
//Create Input&Outputstreams for the connection
InputStream inputToServer = connectionSocket.getInputStream();
OutputStream outputFromServer = connectionSocket.getOutputStream();
boolean done = false;
String imsi = "";
String sms_message = "";
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()))) {
while(!done) {// && scanner.hasNextLine()) {
String line = bufferedReader.readLine();
//while((line = bufferedReader.readLine()) != null){
System.out.println(line);
if(line.contains("imsi")) {
imsi = line.substring(line.indexOf("imsi")+6).replaceAll("}", "").replaceAll("\"", "");
}
if(line.contains("sms_message")) {
String tmp = line.substring(line.indexOf("sms_message"));
int start = tmp.indexOf(":") + 1;
int end = tmp.indexOf(",");
sms_message = tmp.substring(start, end).replaceAll("\"", "");
}
if(imsi != "" && sms_message != "") {
System.out.println(java.time.LocalTime.now());
if(imsi != "" && sms_message != "") {
System.out.println("imsi: "+imsi + " ,sms_message: " + sms_message);
synchronized (smsMap) {
smsMap.put(imsi, sms_message);
}
}
done = true;
}
//}
}
}