java版msn_Java利用MSNP协议登录MSN

请参见上一篇文章,登录MSN协议

具体Java实现:

命令序列:<>代表结果

1.连接DS(Dispatcher Server),得到NS(Notification Server)

<

>>VER 1 MSNP18

<

>>CVR 2 14.0.8089 14.0.8089 14.0.8089 http://msgruser.dlservice.microsoft.com/download/0/9/7/0974F7CD-D082-46FE-922D-806670345793/zh-chs/wlsetup-cvr.exe http://download.live.com/?sku=messenger

<

>>XFR 3 NS 207.46.124.86:1863 U D

private String dsHost = "64.4.9.254";//ds host

private String nsHost;//ns host

private int port = 1863;//port

private int trId = 1;//命令序列号

private String ticketToken;//在获取联系人时用

//得到向MSN服务器发送的命令

private String getMSNCommand(String cmd, String ... args) {

StringBuilder sb = new StringBuilder();

sb.append(cmd).append(' ');

sb.append(trId++).append(' ');

for (int i = 0; i < args.length; i++) {

if (i < args.length - 1) {

sb.append(args[i]).append(' ');

} else {

sb.append(args[i]);

}

}

sb.append("\r\n");

return sb.toString();

}

//初始化NS地址

private void initNSHost() throws TelnetException {

NonBlockTelnetClient client = new NonBlockTelnetClient(dsHost, port);

client.connect();

String cmd = getMSNCommand("VER", "MSNP18", "CVR0");

client.sendCommand(cmd);

String resp = client.getOutputByLine();

System.out.println("resp=" + resp);

cmd = getMSNCommand("CVR", "0x0804", "winnt", "5.1", "i386", "MSNMSGR", "14.0.8089.0726", "msmsgs", username);

client.sendCommand(cmd);

resp = client.getOutputByLine();

System.out.println("resp=" + resp);

cmd = getMSNCommand("USR", "SSO", "I", username);

client.sendCommand(cmd);

resp = client.getOutput

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值