这是一个带有套接字连接的线程。
服务器向这个套接字发送随机整数(每 10 毫秒)。问题是,过了一会儿,接收数据的延迟很大,LogCat 打印出很多“GC_CONCURRENT freed”消息。
public class TcpSocketThread extends Thread {
Context context;
String ip;
int port;
public TcpSocketThread(Context con, String ip, int port) {
context = con;
this.ip = ip;
this.port = port;
}
@Override
public void run() {
Socket client;
try {
client = new Socket(ip, port);
BufferedReader in = new BufferedReader(new InputStreamReader(
client.getInputStream()));
String msg;
while (true) {
if (in.ready()) {
msg = in.readLine();
Intent intent = new Intent(BLUETOOTH_DATA);
intent.putExtra(BLUETOOTH_DATA_STRING, msg);
context.sendBroadcast(intent);
Log.v("Tcp-Socket-Thread", "msg: " + msg);
}
}
} catch (UnknownHostException e) {
Log.v("client", "unknown host" + e);
} catch (IOException e) {
Log.v("client", "No I/O" + e);
}
}
}