接收客户端的上报数据,解析入库,正常情况一下一次获取的是一条记录;但是有时候两个记录同时上报,如何处理?
public void run() {
try {
timerTask = new OneSocketTimerTask();
timer.schedule(timerTask, SOCKET_CONN_TIMEOUT * 1000);
din = new DataInputStream(client.getInputStream());
dos = new DataOutputStream(client.getOutputStream());
while (true) {
byte[] b = new byte[512];
if (din.read(b) > 0) {
String value = new String(b, "utf-8").trim()
if (dataUpManager.addData(value)) {
dos.write("success".getBytes());
} else {
dos.write("fail".getBytes());
}
resetTimer();
}
}
} catch (Exception e) {
}
正常情况下每次获取一条记录,例如:AB5521CD443;解析后再次收到2A5521CD4439F,长度可以不同。但是都是一次一条;
但是有时候两条记录同时上报,变成:
9FB5521CD443(回车换行)
76FD034D66
上面的代码怎么修改?谢谢
------解决思路----------------------
这个你可以自己测试下:
String line = null;
while ((line = din.readLine()) != null){
String value = line.trim().
}
自己测试下,结果对了就行,自己看着办