这两种传输方式有什么不同,两种传输方式不同
各自的优势在哪里?第一个:
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();
}
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("注册成功");
}
// 发送对象且将对象转为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;
}
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传输?
用户评论