Я разрабатываю приложение для Android, где мне нужно общаться с сервером, и я сделал это с помощью программирования сокетов, теперь мне нужно найти Packet Loss в моем подключении, так же есть API или любым способом для поиска потери пакетов при программировании сокетов.Как измерить потерю пакета в Android с помощью программирования сокетов?
Я прикрепляю свой фрагмент кода, где клиент получил сообщение с сервера.
try {
socket = new Socket(dstAddress, dstPort);
dataOutputStream = new DataOutputStream(
socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF(name);
dataOutputStream.flush();
String myArray = "";
int i=0;
while (!goOut) {
flag=0;
if (dataInputStream.available() > 0) {
msgLog += dataInputStream.readUTF();
flag=1;
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
chatMsg.setText(msgLog);
}
});
Log.d("DERE", msgLog);
myArray=msgLog+"";
Log.v("ARE", myArray);
}
//Log.v("ARE", myArray[0]);
if(flag==1)
received(myArray);
if(!msgToSend.equals("")){
dataOutputStream.writeUTF(msgToSend);
dataOutputStream.flush();
msgToSend = "";
}
}
//Looper.loop();
} catch (UnknownHostException e) {
e.printStackTrace();
final String eString = e.toString();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, eString, Toast.LENGTH_LONG).show();
}
});
Класс Socket обеспечивает связь по протоколу TCP, который является надежным и надежным. Таким образом, вам не нужно проверять потерю пакетов на уровне транспортировки. Если вы хотите проверить ответы сервера на уровне приложения, вы можете установить уникальные идентификаторы для каждого запроса, чтобы отслеживать ответы сервера. –