gpt4 book ai didi

java - 如何使用套接字编程在Android中测量数据包丢失?

转载 作者:行者123 更新时间:2023-12-03 11:55:39 25 4
gpt4 key购买 nike

我正在为Android开发一个应用程序,我需要从服务器进行通信,并且我在套接字编程的帮助下做到了这一点,现在我需要在连接中查找 Packet Loss ,所以是否有任何 API 或任何查找方式套接字编程中的数据包丢失。

我将我的代码段附加到客户端从服务器接收消息的位置。

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

});

最佳答案

您可以检查此代码。

String lost = new String();    
String delay = new String();
Process p = Runtime.getRuntime().exec("ping -c 4 " + "119.147.15.13");
BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = new String();
while((str=buf.readLine())!=null){
if(str.contains("packet loss")){
int i= str.indexOf("received");
int j= str.indexOf("%");
System.out.println(":"+str.substring(i+10, j+1));
// System.out.println(":"+str.substring(j-3, j+1));
lost = str.substring(i+10, j+1);
}
if(str.contains("avg")){
int i=str.indexOf("/", 20);
int j=str.indexOf(".", i);
System.out.println(":"+str.substring(i+1, j));
delay =str.substring(i+1, j);
delay = delay+"ms";
}

}

资料来源: http://www.phonesdevelopers.com/1762932/

关于java - 如何使用套接字编程在Android中测量数据包丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com