例如:03-17 07:02:00.330 1984-2007/? I/info﹕ client buff --> 0/20160316//早餐/123.0
03-17 07:02:00.340 1984-2007/? I/info﹕ insert expend_table
03-17 07:02:00.340 1984-2007/? I/info﹕ client buff -->
03-17 07:02:00.340 1984-2007/? I/info﹕ client buff --> 0/20160316//午餐/22.0
03-17 07:02:00.340 1984-2007/? I/info﹕ insert expend_table
03-17 07:02:00.340 1984-2007/? I/info﹕ client buff -->
03-17 07:02:00.340 1984-2007/? I/info﹕ client buff --> 0/20160316/22ss/服装/123.0
数据内容忽视。client buff是客户端接受到的数据
就是为什么会是一条有数据一条没有数据这样循环下去?
服务端代码:
pw = new PrintWriter(s.getOutputStream());
Cursor c = dbManager.query(Constant.DATA_TABLE,"username=?",new String[]{username});
while (c.moveToNext()){
// client端发送数据的顺序: isIncome + "/" + date + "/" + title + "/" + content + "/" + money
String title = c.getString(c.getColumnIndex("title"));
String money = c.getString(c.getColumnIndex("money"));
Long date = c.getLong(c.getColumnIndex("date"));
String isIncome = c.getString(c.getColumnIndex("isIncome"));
String content = c.getString(c.getColumnIndex("content"));
String data = isIncome + "/" + date + "/" + title + "/" +
content + "/" + money + '\n';
pw.println(data);
pw.flush();
}
String endFlag = username + "/end" + '\n';
pw.println(endFlag);
pw.flush();
客户端代码:
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String buff;
while (!(buff = br.readLine()).endsWith(mUsername + "/end")) {
// server端发送数据的顺序: isIncome + "/" + date + "/" + title + "/" + content + "/" + money
String[] str = buff.split("/");
if (str.length == 5) { //确保接收的数据正确
ContentValues values = new ContentValues();
values.put("isIncome", str[0]);
values.put("date", Long.valueOf(str[1]));
values.put("title", str[2]);
values.put("content", str[3]);
values.put("money", str[4]);
if ("0".equals(str[0])) {
if (!dbManager.insert(Constant.EXPEND_TABLE, values)) {
flag = false;
break;
}
} else if ("1".equals(str[0])) {
if (!dbManager.insert(Constant.INCOME_TABLE, values)) {
flag = false;
break;
}
}
}
}
db.setTransactionSuccessful();
db.endTransaction();