基于socket通信传递xml(jdom生成)的Demo
来源:互联网 发布:万隆版单片机课后答案 编辑:程序博客网 时间:2024/05/22 08:11
//jdom生成xml的方法如下:
package socketXmlDemo.socketXmlDemo.createXml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.jdom.Document;import org.jdom.Element;import org.jdom.output.Format;import org.jdom.output.XMLOutputter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ResultXml {//slf4j的logprivate final static Logger logger = LoggerFactory.getLogger(ResultXml.class);/** * jdom生成xml * @throws FileNotFoundException * @throws IOException */public static void raiseXml() throws FileNotFoundException, IOException {// 生成xml文件Element root = new Element("doc");root.setAttribute("xmlcolonlang", "ja");root.setAttribute("xmlnscolonfo", "http://www.w3.org/1999/XSL/Format");Document Doc = new Document(root);Element elements = new Element("reckon_pe").setText("helloworld");// 报告截止日期(页面最下方日期)root.addContent(elements);XMLOutputter XMLOut = new XMLOutputter();XMLOut.setFormat(Format.getCompactFormat().setEncoding("UTF-8"));String xmlPath = "c:\\testSocket.xml";//生成的xml保存的路勁,可用配置文件管理FileOutputStream fos = null;try{fos =new FileOutputStream(new File(xmlPath));logger.error("正在创建文件路径!");XMLOut.output(Doc, new FileOutputStream(xmlPath));}catch(Exception e){}finally{fos.close();}}public static void main(String[] args) throws Exception {raiseXml();}}
//socket监听消息的方法如下:
package socketXmlDemo.socketXmlDemo.sendXml;import java.net.*;import java.io.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ServerTcpListener implements Runnable {//slf4j的logprivate final static Logger logger = LoggerFactory.getLogger(ServerTcpListener.class); public static void main(String[] args) { try { final ServerSocket server = new ServerSocket(ClientTcpSend.port); Thread th = new Thread(new Runnable() { public void run() { while (true) { try { logger.info("开始监听..."); Socket socket = server.accept(); logger.info("有链接"); receiveFile(socket); } catch (Exception e) { } } } }); th.run(); //启动线程运行 } catch (Exception e) { e.printStackTrace(); } } public void run() { } public static void receiveFile(Socket socket) { byte[] inputByte = null; int length = 0; DataInputStream dis = null; FileOutputStream fos = null; try { try { dis = new DataInputStream(socket.getInputStream()); fos = new FileOutputStream(new File("e:\\testSocket.xml")); inputByte = new byte[1024*4]; logger.info("开始接收数据..."); while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) { fos.write(inputByte, 0, length); fos.flush(); } logger.info("完成接收"); } finally { if (fos != null) fos.close(); if (dis != null) dis.close(); if (socket != null) socket.close(); } } catch (Exception e) { } }}
server端方法如下:
package socketXmlDemo.socketXmlDemo.sendXml;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.net.InetSocketAddress;import java.net.Socket;public class ClientTcpSend { public static String clientip = "127.0.0.1"; public static int port = 33456; public static void main(String[] args) { int length = 0; byte[] sendBytes = null; Socket socket = null; DataOutputStream dos = null; FileInputStream fis = null; try { try { socket = new Socket(); socket.connect(new InetSocketAddress(clientip, port),30 * 1000); dos = new DataOutputStream(socket.getOutputStream()); File file = new File("c:\\testSocket.xml"); fis = new FileInputStream(file); sendBytes = new byte[1024*4]; while ((length = fis.read(sendBytes, 0, sendBytes.length)) > 0) { dos.write(sendBytes, 0, length); dos.flush(); } } finally { if (dos != null) dos.close(); if (fis != null) fis.close(); if (socket != null) socket.close(); } } catch (Exception e) { e.printStackTrace(); } }}
pom.xml配置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>socketXmlDemo</groupId> <artifactId>socketXmlDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>socketXmlDemo</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 生成xml使用 --><dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version></dependency>
<!-- slf4j --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>0.9.29</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>0.9.29</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.6.1</version> </dependency> </dependencies></project>
0 0
- 基于socket通信传递xml(jdom生成)的Demo
- 生成100000以内的素数XML文件的Demo(Jdom写成)
- jdom操作xml Demo
- XML生成(三):JDOM生成
- Android的Socket通信Demo
- 基于XML的无限分类(jdom+xpath)
- 基于jdom实现xml的schema验证
- JDOM生成XML文档的一般方法
- 采用jdom生成xml
- jdom生成xml文件
- JDOM 生成xml
- Jdom 生成本地xml
- JAVA JDOM生成XML
- 返回XML的Servlet(用JDOM生成XML)
- 基于Socket通信的聊天室
- 基于UDP的socket通信
- 基于android的Socket通信
- 基于TCP的Socket通信
- 系统调用
- 学习网站收集
- mysql 5.7.17 源码安装
- JUNO版eclipse创建Java程序
- Python教程
- 基于socket通信传递xml(jdom生成)的Demo
- imatest测试分辨率使用教程
- Android 高德地图移除指定的marker
- 周笔记(17/52)
- PHPstorm Xdebug 调试(三张图就可以解决)
- 源码深度解析spring中防止乱码的过滤器
- 页面位置会向上偏移或者向下偏移
- tornado入门实例
- [LeetCode]378. Kth Smallest Element in a Sorted Matrix