msn.setInitialStatus(UserStatus.ONLINE);
msn.addMsnListener(new MSNAdapter(msn));
msn.login();
System.out.println
("Waiting for the response....");
//捕捉Ctrl+C的输入以便注销MSN的登录
Runtime.getRuntime().
addShutdownHook(new MSNDaemon());
}
/**
* 用户中止程序执行
*/
public void run()
{
msn.logout();
System.out.println("MSN Logout OK");
}
}
/**
* MSN消息事件处理类
* @author Liudong
*/
class MSNAdapter extends MsnAdapter
{
MSNMessenger messenger;
public MSNAdapter(MSNMessenger messenger)
{
this.messenger = messenger;
}
/**
* 某人正在输入信息
*/
public void progressTyping(
SwitchboardSession ss,
MsnFriend friend,
String typingUser)
{
System.out.println
(friend.getLoginName() + "正在输入信息...");
}
/**
* 收到消息的时候执行该方法
*/
public void instantMessageReceived(
SwitchboardSession ss,
MsnFriend friend,
MimeMessage mime)
{
System.out.print("接收到消息:
" + friend.getFriendlyName() + "->");
System.out.println(mime.getMessage());
try {
//发送相同的回复信息给发送者
messenger.sendMessage
(friend.getLoginName(), mime);
} catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 登录成功后执行该方法
*/
public void loginComplete(MsnFriend own)
{
System.out.println
(own.getLoginName() + " Login OK");
}
/**
* 登录失败后执行该方法
*/
public void loginError(String header)
{
 
怎样用Java实现MSN Messager的功能