socket 发送和接收XML 并解析

本文展示了如何使用Java的Socket编程发送XML文件到服务器,并在服务器端接收XML内容,然后进行解析。客户端通过Socket连接本地服务器,读取XML文件逐行发送,服务器端接收到数据后写入文件,并使用SAX解析器解析XML。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

就是在 用JAVA获取XML信息 第二步(SAX) 上面增加一点内容。用Socket发送和接收。


客户端口:XMLC.java


/*
 * Created on 2004-11-15
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

import java.net.*;
import java.io.*;

/**
 * @author Shaird
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class XMLClient {
    static Socket sock;

    public static void main(String[] args)throws Exception{
    sock = new Socket(InetAddress.getLocalHost(),8210);

    PrintWriter write = new PrintWriter(new OutputStreamWriter (sock.getOutputStream()),true);
    File file = new File("../shaird/xmldata/peopel.xml");  //用于发送的文件路径
    BufferedReader read = new BufferedReader(new FileReader(file)); 

    String str=null;
    while((str = read.readLine()) != null) 
    write.println(str); 
    write.flush();
    s.close();
    }

}



服务端口: XMLS.java


/*
 * Created on 2004-11-15
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

import java.io.*;
import java.net.*;
import org.xml.sax.*;
import org.xml.sax.helpers.XMLReaderFactory;


/**
 * @author Shaird
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class XMLServer {   
    public static void main(String[] args) throws IOException,SAXException{
    String URL="../shaird/xmldata/book.xml";   
    //通过指定解析器的名称来动态加载解析器
    XMLReader reader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");

    //处理内容前要注册内容管理器
    reader.setContentHandler(new XMLHandler());
   
    ServerSocket server=new ServerSocket(8210);
    Socket client=server.accept();
    BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(URL,false)));
    String str=null;
    String xml=new String();
    while((str = br.readLine()) != null){
        xml+=str+"/n";
        out.println(str);
    }
    out.flush();
    System.out.println(xml);

    InputSource inputSource= new InputSource(xml);
    inputSource.setSystemId(URL);
    reader.parse(inputSource);
    client.close();
   
    File f = new File(URL);
    f.delete();

    } 

}



好了和之前的 用JAVA获取XML信息 第二步(SAX) 里面的内容XMLhandler.java联合用用看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值