各自的优势在哪里?
第一个:
第一个:
createSocket(); try { oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(u); dis=new DataInputStream(socket.getInputStream()); int flag=dis.readInt(); if(flag<=0){ System.out.println("注册失败,该用户已存在"); }else{ System.out.println("注册成功"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
第二个:
createSocket(); // 发送对象且将对象转为json传输 toJsonObject(u, socket); // 接受json且将json转为对象 @SuppressWarnings("unchecked") Map<String, Object> maps = (Map<String, Object>) JSONObject.toBean(jsonObjToBean(ois), Map.class); // 登录状态 int flag = (int) maps.get("flag"); if (flag <= 0) { System.out.println("注册失败,该用户已存在"); } else { System.out.println("注册成功"); }
用到的方法:
private void toJsonObject(Object obj, Socket s) { try { // 将数据转为json传输 JSONObject object = JSONObject.fromObject(obj); oos = new ObjectOutputStream(s.getOutputStream()); oos.writeObject(object.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 把json转为bean private JSONObject jsonObjToBean(ObjectInputStream ois) { JSONObject object = null; try { ois = new ObjectInputStream(socket.getInputStream()); // 解析json至对象 String str = (String) ois.readObject(); object = JSONObject.fromObject(str); } catch (IOException | ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return object; }
想问 用JSON传输和用第一种传输有什么不同?为何要用JSON传输?
解决方案
40
http://blog.csdn.net/woshisap/article/details/6549188