MSN 登陆过程

差点忘了 现在记性真差 这里的代码只是记录过程 写的巨粗糙

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.Socket;
import java.net.URL;

 

public class ServerCommand {
 public ServerCommand(){
    URL tUrl;
    OutputStream tOS,tOS1;
    InputStream tIS,tIS1;
 try {
  
  Socket socket = new Socket("207.46.108.50", 1863);
  tIS = socket.getInputStream();
  tOS = socket.getOutputStream();
        tOS.write("VER 0 MSNP11 CVR0 \r\n".getBytes());
        byte[] data = new byte[3096];
        tIS.read(data);
        System.out.println("协议返馈-----"+new String(data).trim());
       // Log.d("-----------------", new String(data).trim());
        tOS.write("CVR 1 0x0804 winnt 5.0 i386 MSNMSGR 8.5.1302 MSMSGS (这里是登陆的用户名) \r\n".getBytes());
        data = new byte[3096];
        tIS.read(data);
        System.out.println("版本返馈-----"+new String(data).trim());
        //Log.d("-----------------", new String(data).trim());
        tOS.write("USR 2 TWN I (这里是登陆的用户名)  \r\n".getBytes());
        data = new byte[3096];
        tIS.read(data);
        System.out.println("tpf返馈-----"+new String(data).substring(12).trim());
       // Log.d("-----------------", new String(data).substring(12).trim());
        tUrl=new URL("https://loginnet.passport.com/login2.srf");
        HttpURLConnection hc=(HttpURLConnection) tUrl.openConnection();
        hc.setRequestMethod("GET");       
        hc.setUseCaches( false );
        hc.setDoInput( true );
  hc.setRequestProperty( "Host", "loginnet.passport.com");
  String author =("Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=(这里是登陆的用户名) ,pwd=(这里是登陆的密码) ,"+(new String(data,"UTF-8").substring(12).trim()).replaceAll("http:%2F%2Fmessenger.msn.com", "http%3A%2F%2Fmessenger%2Emsn%2Ecom"));
  hc.setRequestProperty( "Authorization", author);
  System.out.println("发送SSL-----"+author.trim());
  //Log.d("author-------------", author.trim());
  String auth = hc.getHeaderField("Authentication-Info");
  System.out.println("SSL返馈-----"+auth.trim());
  String[] temp=auth.split(",");
  //向服务器发送的较验
  String SSLString = temp[1].substring(9,temp[1].length()-1);
        System.out.println("SSL返馈2-----"+temp[1].substring(9,temp[1].length()-1));
        tOS.write(("USR 3 TWN S "+SSLString+" \r\n").getBytes());
        data = new byte[3096];
        tIS.read(data);
        System.out.println("登陆成功-----"+new String(data).trim());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("登陆成功-----"+new String(data).trim());
        tOS.write(("SYN 4 0 0 \r\n").getBytes());
        //tOS.write(("CHG 7 NLN 268435489 \r\n").getBytes());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("同步-----"+new String(data).trim());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("同步-----"+new String(data).trim());
        tOS.write(("CHG 5 NLN 268435489 \r\n").getBytes());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("改变状态-----"+new String(data).trim());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("改变状态-----"+new String(data).trim());
        tOS.write(("PNG \r\n").getBytes());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("ping-----"+new String(data).trim());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("ping-----"+new String(data).trim());
        tOS.write(("XFR 8 SB \r\n").getBytes());
        Thread.sleep(200);
        data = new byte[3096];
        tIS.read(data);
        System.out.println("SB回馈---"+new String(data).trim());
        String[] temp2 = new String(data).trim().split(" ");
        String[] temp3 = temp2[3].split(":");
        System.out.println("SB服务器---"+temp2[3]);
        System.out.println("CKI---"+temp2[5]);
  Socket socket1 = new Socket(temp3[0],Integer.parseInt(temp3[1]));
  tIS1 = socket1.getInputStream();
  tOS1 = socket1.getOutputStream();
  tOS1.write(("USR 1 (这里是自己的用户名)  "+temp2[5]+" \r\n").getBytes());
        data = new byte[3096];
        tIS1.read(data);
        System.out.println("建立对话请求-----"+new String(data).trim());
  tOS1.write("CAL 2 (这里好友的用户名)  \r\n".getBytes());
  Thread.sleep(200);
        data = new byte[3096];
        tIS1.read(data);
        System.out.println("申请与***对话-----"+new String(data).trim());
        //tOS1.write("MSG 3 N 119\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nX-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n\r\nHello!".getBytes());
  Thread.sleep(200);
        data = new byte[3096];
        tIS1.read(data);
        System.out.println("申请与***对话-----"+new String(data).trim());
        tOS1.write("MSG 3 N 119\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nX-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n\r\nHello!".getBytes());
        data = new byte[3096];
        tIS1.read(data);
        System.out.println("发送hello-----"+new String(data).trim());   
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
new ServerCommand();
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值