利用XML传输数据
来源:互联网 发布:php 5.2.5 win32.zip 编辑:程序博客网 时间:2024/05/16 11:11
一、客户端以XML格式向服务器端发送数据,并解析XML输出到控制台
要求如下:
客户端以XML格式向服务器端发送数据,详细要求如下:
1)客户端读取myemp.xml数据,将其发送到服务器端。
2)服务器接收到XML格式的数据后,进行解析,将解析到的数据输出到控制台。
public class Emp {private int id;private String name;private int age;private String gender;private int salary;public Emp(int id, String name, int age, String gender, int salary) {super();this.id = id;this.name = name;this.age = age;this.gender = gender;this.salary = salary;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}public String toString(){return id+","+name+","+age+","+gender+","+salary;}}客户端:
import java.io.File;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;import org.dom4j.Document;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;/** * 客户端 */public class Client {private Socket socket;public Client() throws UnknownHostException, IOException{socket = new Socket("192.168.1.100",8088);}public void start(){try {//获取输出流OutputStream out = socket.getOutputStream();File file = new File("./src/day08/myemp.xml");//创建SAXReader,读取指定文件SAXReader reader = new SAXReader();Document doc = reader.read(file);//创建XML输出流XMLWriter writer = new XMLWriter();writer.setOutputStream(out);writer.write(doc);} catch (Exception e) {e.printStackTrace();} finally {if(socket != null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}}}public static void main(String[] args) {try {Client c = new Client();c.start();} catch (Exception e) {e.printStackTrace();System.out.println("客户端初始化失败");} }}服务端:
import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;/** * 服务端 */public class Server {private ServerSocket server;public Server() throws IOException{server = new ServerSocket(8088);}public void start(){try {//监听客户端,建立连接System.out.println("等待连接..........");Socket socket = server.accept();System.out.println("服务端连接成功!");//获取输入流InputStream in = socket.getInputStream();//创建SAXReader,读取指定文件SAXReader reader = new SAXReader();Document doc = reader.read(in);//获取根节点Element root = doc.getRootElement();//获取根节点(list)下所有子节点empList<Element> list = root.elements();//保存所有员工对象的集合List<Emp> emplist = new ArrayList<Emp>();for(Element e : list){int id = Integer.parseInt(e.attribute("id").getValue());String name = e.elementText("name");int age = Integer.parseInt(e.elementText("age"));String gender = e.elementText("gender");int salary = Integer.parseInt(e.elementText("salary"));emplist.add(new Emp(id,name,age,gender,salary));}System.out.println("解析完毕!");//输出到控制台for(Emp e : emplist){System.out.println(e);}} catch (Exception e) {e.printStackTrace();} finally {if(server != null){try {server.close();} catch (IOException e) {e.printStackTrace();}}}}public static void main(String[] args) {try {Server s = new Server();s.start();} catch (IOException e) {e.printStackTrace();System.out.println("初始化服务端失败!");}}}测试结果会在服务端输出:
等待连接..........服务端连接成功!解析完毕!1,jack,33,男,50002,boss,55,男,55003,marry,22,女,35004,kate,25,女,60005,tom,31,男,8500
二、客户端以XML格式向服务器端发送数据
要求如下:客户端以XML格式向服务器端发送数据,详细要求如下:
1)客户端读取myemp.xml中的数据,将其发送到服务器端。
2)服务器接收到XML格式的数据后,将其输出到serverMyemp.xml文件中。
代码如下:客户端:
import java.io.File;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;import org.dom4j.Document;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Client {private Socket socket;public Client() throws UnknownHostException, IOException{socket = new Socket("192.168.1.100",8088);}public void start(){try{OutputStream out = socket.getOutputStream();//创建SAXReader,读取指定文件SAXReader reader = new SAXReader();File file = new File("myemp.xml");Document doc = reader.read(file);//创建XML输出流XMLWriter writer = new XMLWriter();writer.setOutputStream(out);writer.write(doc);} catch(Exception e){e.printStackTrace();} finally {//只关socketif(socket != null){try {socket.close();} catch (IOException e) {e.printStackTrace();}}}}public static void main(String[] args) {Client c;try {c = new Client();c.start();} catch (Exception e) {e.printStackTrace();System.out.println("客户端初始化失败!");} }}服务端
代码如下:
import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import org.dom4j.Document;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Server {private ServerSocket server;public Server() throws IOException{server = new ServerSocket(8088);}public void start(){XMLWriter writer = null;try{System.out.println("等待连接......");Socket socket = server.accept();System.out.println("连接客户端成功!");InputStream in = socket.getInputStream();//读取用户发送过来的xmlSAXReader reader = new SAXReader();Document doc = reader.read(in);//写出xml到day08包中FileOutputStream fos = new FileOutputStream("./src/day09/serverMyemp.xml");writer = new XMLWriter();writer.setOutputStream(fos);writer.write(doc);System.out.println("服务端接受文件成功!");} catch(Exception e){e.printStackTrace();} finally {//writer和server都要关if(writer != null){try {writer.close();} catch (IOException e) {e.printStackTrace();}}if(server != null){try {server.close();} catch (IOException e) {e.printStackTrace();}}}}public static void main(String[] args) {try {Server s = new Server();s.start();} catch (IOException e) {e.printStackTrace();System.out.println("服务端初始化失败!");}}}
服务端测试结果如下:
等待连接......连接客户端成功!服务端接受文件成功!
0 0
- 利用XML传输数据
- 利用jquery进行xml数据的传输
- xml 二进制数据 传输处理
- 利用ODI加载,传输图象数据
- 利用串行接口传输各种数值数据
- 两个Activity利用Intent传输数据
- Unity利用WWW http传输Json数据
- 用XMLHTTP协议传输XML数据
- XML传输图片数据-Base64编码
- N1.通过XML格式传输数据
- soap协议传输xml格式数据
- Android有关HTTPS请求传输xml数据
- Ajax传输Json和xml数据
- 利用VisualBasic操作XML数据
- 利用javascript 读取xml 数据
- 利用VB操作XML数据
- 利用JDOM2读取XML数据
- XML与JSON比较,并用AJAX传输XML/JSON数据
- git pull 时出现 error: Your local changes to the following files would be overwritten by merge的解决办法
- Java发送email
- 大众点评订单系统分库分表实践
- JavaEE 使用jsp-config配置jsp
- hbase 安装部署
- 利用XML传输数据
- 多线程通信
- 2017/01/25
- spring笔记
- 对于后台订单购物流程的API开发小结
- Leetcode 136. Single Number
- TexLive支持中文问题
- 【JAVA学习】——J2SE总结
- Hive 分桶表