📄 clientxmlparser.java
字号:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
/**
* Use DOM parse XML message which transmit between JIDX Client and JIDX Client.
* 2005.9.1
* @version 0.1.2
* @author Daxin Tian
*
*/
public class ClientXMLParser {
/**
* Message to be parsed.
*/
public InputStream in=null;
/**
* Server peer send to client peer ask client peer to receive server peer's name--sendmyname_s.
*/
public boolean sendmyname_b=false;
/**
* Client peer send to server peer ask server peer to receive XML IDMEF file--peername_s,
* sendfile_s,filesize_l.
*/
public boolean sendfile_b=false;
/**
* Server peer send to client peer tell him whether accept to receive
* the XML IDMEF file and if accept whether receive successfully--acknum_i.
*/
public boolean ackfile_b=false;
//public boolean content_b=false;
/**
* Client peer tell server peer the send file behavior begin,intermited or over--sendbe_i.
*/
public boolean sendbe_b=false;
/**
* Server peer tells client peer his/her username. After client peer successfully
* connect to the server peer, server peer immediately send this message.<p>
*Combined with sendmyname_b.
*/
public String sendmyname_s=null;
/**
* Tell server peer who send the file.<p>Combined with sendfile_b.
*/
public String peername_s=null;
/**
* Tell server peer the XML IDMEF file's name which will be send to him/her.<p>Combined with
* sendfile_b.
*/
public String sendfile_s=null;
/**
* Tell server peer the file size.<p>Combined with sendfile_b.
*/
public long filesize_l=0;
//public String content_s=null;
/**
* Tell client peer whether accept to receive the XML IDMEF file and
* if accept whether receive successfully.
* <ul>
* <li> >0: accept the request,the number is the port used to receive file
* <li>-1: reject the file
* <li>-3: prepared to receive the file
* <li>0: receive success
* <li>-2: receive failed,the server peer stop receive
* </ul>
* Combined with ackfile_b.
*/
public int acknum_i=0;
/**
* Tell server peer the send file behavior begin,intermitted or over.
* <ul>
* <li>0:Intermitted
* <li>1: Begin
* <li>2: Over successfully
* </ul>
*/
public int sendbe_i=0;
public void parser()
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(in);
doc.normalize();
NodeList list_msg=doc.getElementsByTagName("msg");
//System.out.print(list_msg.getLength());
if(list_msg.getLength()==1)
{
//System.out.println("msg begin");
Element e_msg=(Element)list_msg.item(0);
if(e_msg.getElementsByTagName("send_myname").getLength()>0)
{
Element e_sendmyname=(Element)e_msg.getElementsByTagName("send_myname").item(0);
sendmyname_b=true;
sendmyname_s=e_sendmyname.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
}
if(e_msg.getElementsByTagName("send_file").getLength()>0)
{
Element e_sendfile=(Element)e_msg.getElementsByTagName("send_file").item(0);
sendfile_b=true;
peername_s=e_sendfile.getElementsByTagName("peer_name").item(0).getFirstChild().getNodeValue();
sendfile_s=e_sendfile.getElementsByTagName("file_name").item(0).getFirstChild().getNodeValue();
filesize_l=Long.parseLong(e_sendfile.getElementsByTagName("size").item(0).getFirstChild().getNodeValue());
}
if(e_msg.getElementsByTagName("ack_file").getLength()>0)
{
Element e_ack=(Element)e_msg.getElementsByTagName("ack_file").item(0);
ackfile_b=true;
acknum_i=Integer.parseInt(e_ack.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
}
if(e_msg.getElementsByTagName("send_file_begin_end").getLength()>0)
{
Element e_be=(Element)e_msg.getElementsByTagName("send_file_begin_end").item(0);
sendbe_b=true;
sendbe_i=Integer.parseInt(e_be.getElementsByTagName("num").item(0).getFirstChild().getNodeValue());
}
/*
if(e_msg.getElementsByTagName("file_content").getLength()>0)
{
Element e_con=(Element)e_msg.getElementsByTagName("file_content").item(0);
content_b=true;
content_s=e_con.getElementsByTagName("content").item(0).getFirstChild().getNodeValue();
}
*/
}
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -