差点忘了 现在记性真差 这里的代码只是记录过程 写的巨粗糙
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();
}
}