⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 friendsinfo.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) FriendsInfo.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.utility.chat;//导入核心Java类库import java.io.IOException;import java.io.StringReader;import java.net.MalformedURLException;import java.util.List;import java.util.Vector;import java.util.ArrayList;import javax.swing.JOptionPane;//导入自定义Java类库import hws.item.smart.Smart;import hws.item.smart.misc.XMLConfig;import hws.item.smart.misc.StringShop;//导入第三方Java类库import org.jdom.Element;import org.jdom.Document;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter;import org.apache.xmlrpc.XmlRpc;import org.apache.xmlrpc.XmlRpcClient;import org.apache.xmlrpc.XmlRpcRequest;import org.apache.xmlrpc.XmlRpcException;/** * 好友信息 * * @version 0.1 2005-08-22 * @author Hwerz */public class FriendsInfo extends Object {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 好友列表,实际存放的是好友的ID     */    private List friends;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * Create a new instance of this class     */    public FriendsInfo() {        super();        friends = new ArrayList();    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 将指定的Friends元素转换成FriendsInfo对象     *     * @param friends 指定的Friends元素     * @return 转换后的FriendsInfo对象     */    public static FriendsInfo friendsElement2FriendsInfo(Element friends) {        FriendsInfo friendsInfo = new FriendsInfo();        List children = friends.getChildren();        for (int i = 0; i < children.size(); i++) {            Element friend = (Element) children.get(i);            friendsInfo.addFriend(friend.getAttributeValue("id"));        }        return friendsInfo;    }    /**     * 返回指定好友的IP地址     *     * @param id 指定好友的ID     * @return 指定好友的IP地址     */    public static String getFriendIP(String id) {        String ip = null;        try {            XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");            XmlRpcClient client = new XmlRpcClient(genURL());            String response = client.execute(genRequest(id)).toString();            SAXBuilder builder = new SAXBuilder();            StringReader reader = new StringReader(response);            Document document = builder.build(reader);            Element root = document.getRootElement();            ip = root.getChild("IP").getText();        } catch (ClassNotFoundException e) {            JOptionPane.showMessageDialog(Smart.getInstance(),                "系统找不到类库“org.apache.xerces.parsers.SAXParser”!",                StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE);        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (XmlRpcException e) {            e.printStackTrace();        } catch (IOException e) {            JOptionPane.showMessageDialog(Smart.getInstance(),                "用户服务已关闭,请稍候再试!", StringShop.HINT_TITLE,                JOptionPane.INFORMATION_MESSAGE);        } catch (JDOMException e) {            e.printStackTrace();        }        return ip;    }    /**     * 返回所有好友     *     * @return 所有好友     */    public List getAllFriends() {        return friends;    }    /**     * 添加好友     *     * @param id 待添加好友的ID     */    public void addFriend(String id) {        friends.add(id);    }    /*------------------------------------------------------------------------*     *                                私有方法                                *     *------------------------------------------------------------------------*/    /**     * 生成请求URL     *     * @return 生成的请求URL     */    private static String genURL() {        StringBuffer url = new StringBuffer();        url.append("http://");        url.append(XMLConfig.getServicesIP());        url.append(":");        url.append(XMLConfig.getAddressPort());        url.append("/");        return url.toString();    }    /**     * 生成XML-RPC请求消息     *     * @param id 指定好友的ID     * @return 生成的XML-RPC请求消息     */    private static XmlRpcRequest genRequest(String id) {        //请求方法        StringBuffer method = new StringBuffer();        method.append(XMLConfig.getAddressClass());        method.append(".");        method.append(XMLConfig.getAddressMethod());        //请求参数        Vector params = new Vector();        XMLOutputter outputter = new XMLOutputter();        params.addElement(outputter.outputString(genDocument(id)));        return new XmlRpcRequest(method.toString(), params);    }    /**     * 生成XML文档     *     * @param id 指定用户的ID     * @return 生成的XML文档     */    private static Document genDocument(String id) {        Element request = new Element("Request");        Element level1 = new Element("ID");        level1.setText(id);        request.addContent(level1);        return new Document(request);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -