`

用java写个MSN____msnm-lib

阅读更多

jMSN是一个韩国人开发的开放源码的API,可以从http://sourceforge.net/projects/jmsn/ 站点上下载.
这里只实现了一个简单获取用户好友列表的功能。

package com.pqcc.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import rath.msnm.BuddyGroup;
import rath.msnm.BuddyList;
import rath.msnm.GroupList;
import rath.msnm.MSNMessenger;
/**
*
* @author pqcc
*
*/
public class MsnHelper {

/**
*   getGroups(String userName,String password)    查询所有的 msn 分组。
*   getBuddyList(String userName,String password) 查询所有好友.(其他查询在线好友也雷同).
* @param args
*/
private static Logger log = Logger.getLogger(MsnHelper.class.getName());
private MSNMessenger msn = null;
public static void main(String[] args)
{
MsnHelper ms = new MsnHelper();
String msnAddress = JOptionPane.showInputDialog(”请输入你的MSN”);
String password = JOptionPane.showInputDialog(”请输入你的密码”);
List<String> buddyList = ms.getBuddyList(msnAddress,password);
if(buddyList != null)
{
for(String name:buddyList)
{
log.info(”Buddy :”+name);
}
}
}

public void setMsnMessager(String userName,String password)
{
this.msn = new MSNMessenger(userName,password);

}
public MSNMessenger getMsnMessager()
{
return msn;
}
/**
* Login ur msn base on username and password.
* @param userName
* @param password
*/
public void login(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
msn.login();
}
/**
* Get all of ur msn group by username and password. (推荐)
* @param userName
* @param password
* @return all ur msn group .
*/
public List<String> getGroups(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
if(!msn.isLoggedIn())
{
login(userName,password);
}
return getGroups(msn);
}
/**
* Get all of ur buddy by username and password. (推荐)
* @param userName
* @param password
* @return All the buddy
*/
public List<String> getBuddyList(String userName,String password)
{
if(msn == null)
setMsnMessager(userName,password);
if(!msn.isLoggedIn())
{
login(userName,password);
}
return getBuddyList(msn);
}
/**
* Get all of ur buddy  group by MSNMessage.(不推荐)
* @param msn
* @return
*/
public List<String> getGroups(MSNMessenger msn)
{
if(msn == null)
return null;
if(!msn.isLoggedIn())
{
log.warn(”Please set the MSNMessge”);
msn.login();
}
BuddyGroup buddyGroup =   msn.getBuddyGroup();
GroupList groupList = buddyGroup.getGroupList();
Iterator groupIterm = groupList.iterator();
List list = null;
while(groupIterm.hasNext())
{
list = (list == null)?new ArrayList():list;
list.add(groupIterm.next().toString());
}
return list;
}
/**
* Get all of ur buddy  by MSNMessage.(不推荐,)
* @param msn
* @return
*/
public List<String> getBuddyList(MSNMessenger msn)
{
if(msn == null)
{
log.warn(”Please set the MSNMessge”);
return null;
}
if(!msn.isLoggedIn())
{
msn.login();
}
BuddyGroup buddyGroup =   msn.getBuddyGroup();
BuddyList buddyList = buddyGroup.getForwardList();
List list = null;
// check.
if(buddyList == null || buddyList.size()<1)
return null;

for(int i=0;i<buddyList.size();i++)
{
list = (list == null)?new ArrayList():list;
String fname = buddyList.get(i).getLoginName();
list.add(fname);
}
return list;
}
}

运行结果:

Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@hotmail.com
Buddy :***@msn.com

分享到:
评论

相关推荐

    msnm-sensor_POC

    msnm-sensor_POC

    java-msn机器人代码.doc

    1. **MSN Messenger API**:代码中使用了`rath.msnm`包,这可能是一个第三方库,用于与MSN Messenger服务进行通信。`MSNMessenger`和`SwitchboardSession`等类是API的一部分,它们用于管理会话和用户状态。 2. **...

    使用java导入某个msn帐号的好友列表并发送消息

    - **JML (Java Msn Manager Library)**:这是一个专注于MSN通讯管理的Java库。相较于Openfire,JML对MSN的支持更为优化,且使用起来更为简便。 本篇文档将详细介绍如何使用JML来实现导入指定MSN账号的好友列表,并...

    MSN_Messenger模仿界面

    4. **技术实现**:实现这样的模仿界面可能需要掌握多种技术,如HTML、CSS、JavaScript等前端技术用于构建Web应用,或者使用Java、C#、Python等后端语言来构建桌面应用。此外,可能还需要利用库或框架,如React、Vue....

    MSNM的jar包

    做MSN系列软件必要的JAR包

    msnm.jar 推荐

    韩国人做的msn messagejar包

    python msn实现

    在提供的文件中,`msnm.jar`可能是一个Java编译的MSNM库,用于Java版本的MSN客户端;`MSN-PROTOCOL.TXT`和`MSN-FILE-PROTOCOL.*.TXT`可能包含了MSN协议的详细文档,是实现Python MSN客户端的重要参考资料;`Change...

    msnmlib-1.2.2-src.zip

    首先,我们要明确这个压缩包的核心内容——"msnmlib",这是一个专门为Java开发者设计的库,它提供了与MSN服务交互的API,使得开发者能够创建功能丰富的MSN客户端应用,或者实现与MSN服务器的自定义通信。版本号...

    再来一个msn机器人

    【标题】"再来一个msn机器人"所涉及的知识点主要集中在开发一个基于MSN协议的聊天机器人上。MSN机器人是能够自动响应用户消息、执行特定任务或提供信息的软件,它利用了微软的MSN Messenger服务(现已停止服务,但...

    好用的msnm.jar包和例子

    亲自试过 好用的 jar包好用 获得联系人列表

    MSN机器人

    MSN机器人是一种基于微软的MSN Messenger服务的自动化程序,它能够模拟人类用户的行为,与其它MSN Messenger用户进行互动。这些机器人通常由开发者编写,利用特定的API(应用程序接口)来实现,以便在聊天环境中提供...

    CurvesSurfaces4CADsystems:MSNM在线1小时讲座

    在CAD(计算机辅助设计)系统中,曲线和曲面是构建复杂几何形状的基础元素,广泛应用于机械工程、建筑设计、航空航天等多个领域。"Curves Surfaces 4 CAD systems" 是一个主题,专门探讨如何利用数学工具来创建和...

    wmii-GaimEvents-开源

    【wmii-GaimEvents-开源】是一个针对Gaim即时通讯客户端的开源插件,它的主要功能是增强Gaim的功能,使用户能够接收到并处理来自MSN文件系统的各种事件。Gaim,全称“GNU/All-In-One-Instant-Messenger”,是一款跨...

    捕获并、分析数据包并显示其内容源程序程序!

    ”指的是使用编程语言(在这种情况下是C++)创建一个应用程序,该程序能够捕获网络中的数据包,解析其内容,并在用户界面中显示这些信息。这通常涉及到网络监控、故障排除或网络安全分析等领域。 在描述中提到,...

    winpcap4.01中文帮助文档

    WinPcap 4.01 是一个非常重要的网络数据包捕获和分析库,它为Windows操作系统提供了底层网络访问功能。这个中文帮助文档是开发者和网络管理员的重要参考资料,包含了关于WinPcap的所有关键信息,包括安装、配置、...

    基于plc的煤仓煤位大学-学位论文.doc

    然而,早期系统因技术水平、扩展性及维护问题逐渐被淘汰,近年来,随着技术进步,KJ90、KJ95等新一代系统及MSNM、WEBGIS等数字化网络监测管理系统应运而生。国家政策规定高瓦斯或瓦斯突出矿井必须配备监测监控系统,...

    JWebMSN-开源

    尽管有一些msn Web客户端,但它们不是开源的。 因此,我构建了这个JSP客户端,它允许您将其安装在自己的JSP服务器上。 该项目的后端正在使用MSNM库(可以在jsmsn.sourceforge.net上找到)

    Wireshark使用指南.doc

    除了自身捕获的数据包,Wireshark还能够打开由其他网络分析工具生成的文件,如Microsoft Network Monitor(MSNM)和tcpdump的pcap文件。 1.1.5. 支持多格式输出 用户可以导出捕获的数据为文本、XML、CSV等多种格式...

    教师计算机高级上机考试题12.pdf

    3. 网络通讯工具:出现了“MSN Messenger”、“E-mail”、“BBS”、“Blog”等词汇,这些词汇涉及到的是传统的即时通讯、电子邮件、论坛以及博客等网络交流工具,反映出考察内容可能包括网络通讯方式和基础网络知识...

Global site tag (gtag.js) - Google Analytics