www.pudn.com > 手机网游源码.rar > Connection.java


package com.dfun.blackjack; 
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import javax.microedition.io.Connector; 
import javax.microedition.io.StreamConnection; 
import java.io.InputStreamReader; 
import java.io.ByteArrayInputStream; 
 
/************************************************** 
 * @author Beetle 
 * 类功能介绍:公共连接服务器模板 
 **************************************************/ 
public class Connection { 
	private String url;													//服务器地址 
	public DataInputStream oneIn,twoIn; 
	public DataOutputStream oneOut,twoOut; 
 
	private Main main; 
	/******************************************************* 
	 * 功能介绍:构造函数 打开连接并初始化网络 
	 * 输入参数:无 
	 *******************************************************/ 
	public Connection(Main main) { 
		this.main=main;	 
		url="socket://127.0.0.1:3333"; 
	} 
	/***************************************************** 
	 * 功能介绍:初始化网络连接 
	 * 输入参数:无 
	 * 输出参数:无 
	 *****************************************************/ 
	public boolean initNet(){ 
		try{															//打开两个连接(一个上一个下),并使它们联结 
			StreamConnection oneConn=(StreamConnection)Connector.open(url); 
			oneOut=oneConn.openDataOutputStream(); 
			oneIn=oneConn.openDataInputStream(); 
			sendOneData("99");											//通知服务端这是第一个连接 
			main.userId=Long.parseLong(getOneData()); 
			StreamConnection twoConn=(StreamConnection)Connector.open(url); 
			twoOut=twoConn.openDataOutputStream(); 
			twoIn=twoConn.openDataInputStream(); 
			sendTwoData("98"+main.userId);								//通知服务器这是该手机的第二个连接,并将第一个连接的唯一id给服务器 
			return true; 
		}catch(Exception e){ 
			System.out.println(e.getMessage()+"初始化网络错误"); 
			return false; 
		} 
	} 
	/***************************************************** 
	 * 功能介绍:使用连接一发送数据 
	 * 输入参数:要发送的命令 
	 * 输出参数:是否成功 
	 ****************************************************/ 
	public boolean sendOneData(String sendStr){ 
		try { 
			oneOut.writeUTF(sendStr); 
			oneOut.flush(); 
			return true; 
		} catch (Exception e) { 
			System.out.println(e.getMessage()+"发送"+sendStr+"  产生错误"); 
			return false; 
		} 
	} 
 
	/***************************************************** 
	 * 功能介绍:接收连接一的数据 
	 * 输入参数:无 
	 * 输出参数:接收到的数据 
	 *****************************************************/ 
	public String getOneData(){ 
		try{ 
			String strTmp=oneIn.readUTF(); 
			strTmp=strTmp.substring(2,strTmp.length()); 
			return strTmp; 
		}catch(Exception e ){ 
			System.out.println(e.getMessage()); 
			return null; 
		} 
	} 
 
	/***************************************************** 
	 * 功能介绍:使用连接二发送数据 
	 * 输入参数:要发送的命令 
	 * 输出参数:是否成功 
	 ****************************************************/ 
	public boolean sendTwoData(String sendStr){ 
		try { 
			twoOut.writeUTF(sendStr); 
			twoOut.flush(); 
			return true; 
		} catch (Exception e) { 
			return false; 
		} 
 
	} 
	/***************************************************** 
	 * 功能介绍:接收连接二的数据 
	 * 输入参数:无 
	 * 输出参数:接收到的数据 
	 *****************************************************/ 
	public String getTwoData(){ 
		try{ 
			String strTmp= twoIn.readUTF(); 
			return strTmp; 
		}catch(Exception e ){ 
			return e.getMessage(); 
		} 
	} 
 
 
    /***************************************************** 
     * 功能介绍:发送用户的手机号码和用户昵称到服务器 
     * 输入参数:手机号码,用户昵称 
     * 输出参数:是否成功 
     ****************************************************/ 
    public boolean sendUserInfo(String phoneNumber,String userName,String password){ 
    	try{ 
    		sendOneData("97"+phoneNumber+","+password+","+userName+","); 
    		return true; 
    	}catch(Exception e){ 
    		return false; 
    	} 
 
    } 
    /***************************************************** 
     * 功能介绍:取得用户总分 
     * 输入参数:用户手机号码 
     * 输出参数:逻辑值,真代码刷新成功,反之不成功 
     *****************************************************/ 
    public boolean getCount (String phoneNumber){ 
    	try{ 
    		sendOneData("01"+phoneNumber); 
    		String strTmp=getOneData(); 
    		main.userCount=Integer.parseInt( strTmp); 
    		return true; 
    	}catch(Exception e){ 
    		System.out.println(e.getMessage()); 
    		return false; 
    	} 
    } 
    /***************************************************** 
     * 功能介绍:取得房间信息 
     * 输入参数:无 
     * 输出参数:取得是否成功 
     ****************************************************/ 
    public boolean getHouseList(){ 
    	try{ 
    		sendOneData("02"); 
    		String inputStr=getOneData(); 
    		main.hall.refreshHall(inputStr); 
    		return true; 
    	}catch(Exception e){ 
    		System.out.println(e.getMessage()); 
    		return false; 
    	} 
    } 
    /***************************************************** 
     * 功能介绍:新建房间 
     * 输入参数:为房间名称, 庄家id, 庄家名称, 最高上限 
     * 输出参数:房间id 
     ****************************************************/ 
    public long addHouse(String houseName,long creatorId,String creatorName,int maxClient){ 
    	sendOneData("03"+houseName+","+creatorId+","+creatorName+","+maxClient); 
    	String strTmp=getOneData(); 
		return Long.parseLong(strTmp); 
    } 
}