GetServicData.java
上传用户:haojie1228
上传日期:2022-08-08
资源大小:347k
文件大小:9k
源码类别:

通讯/手机编程

开发平台:

Java

  1. package poker;
  2. import org.kxml.Xml;
  3. import org.kxml.parser.XmlParser;
  4. import org.kxml.parser.ParseEvent;
  5. import javax.microedition.io.*;
  6. import java.io.*;
  7. import javax.microedition.lcdui.*;
  8. import java.util.*;
  9. /**
  10.  * <p>Title: </p>
  11.  * <p>Description: </p>
  12.  * <p>Copyright: Copyright (c) 2004</p>
  13.  * <p>Company: </p>
  14.  * @author not attributable
  15.  * @version 1.0
  16.  */
  17. class GetServicData {
  18.   static String url="";
  19.   static List imList;
  20.   static String[] imValue;
  21.   static String[] imID;
  22.   static Image ServerImage,RoomImage,TableImage;
  23.   static int kind=0;
  24.   static String value="";
  25.   /*   kind define
  26.  *  -------------
  27.  *   1:ServerList
  28.  *   2:RoomList
  29.  *   3:TableList
  30.  *   4:AuthenticationUser
  31.  *   5:ifCanGetSeat
  32.  *
  33.  *     Required
  34.  *  -------------
  35.  *   url
  36.  *   all kind of Image
  37.  *   kind
  38.  *
  39.  *     return
  40.  *  -------------
  41.  *   imList     use in serverlist,roomlist,tablelist
  42.  *   imValue    use in serverlist
  43.  *   imID       use in serverlist,roomlist,tablelist
  44.  *
  45.  */
  46. public static void connect() {
  47.      HttpConnection hc = null;
  48.      DataOutputStream dos=null;
  49.      DataInputStream in = null;
  50.      String s="";
  51.      StringBuffer b = new StringBuffer();
  52.       try {
  53.        hc = (HttpConnection)Connector.open(url);
  54.        hc.setRequestMethod("GET");
  55.        in = hc.openDataInputStream();
  56.        System.out.println("open stream ok!");
  57.        int ch;
  58.        while((ch = in.read()) != -1)
  59.        {
  60.          b.append((char) ch);
  61.        }
  62.        s=b.toString();
  63.        //System.out.println("read from service:"+s);
  64.        in.close();
  65.        hc.close();
  66.      }
  67.      catch (Exception ioe) {
  68.        Error.errCode=1;
  69.        Error.errStr="Error when make a connection.";
  70.        return;
  71.       }
  72.       parseUsingkXML( s );
  73.    }
  74.   private static void parseUsingkXML( String xml ){
  75.      try {
  76.        ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes() );
  77.        InputStreamReader in = new InputStreamReader( bin );
  78.        XmlParser parser = new XmlParser( in );
  79.        Vector items = new Vector();
  80.        switch( kind ){
  81.          case 1:
  82.            Func.deleteList(imList);
  83.            parsekXMLItemsForServerList( parser);
  84.            break;
  85.          case 2:
  86.            Func.deleteList(imList);
  87.            parsekXMLItemsForRoomList( parser);
  88.            break;
  89.          case 3:
  90.            Func.deleteList(imList);
  91.            parsekXMLItemsForTableList( parser );
  92.            break;
  93.          case 4:
  94.            parsekXMLItemsForLogin( parser );
  95.            break;
  96.          case 5:
  97.            parsekXMLForIfCanSit( parser );
  98.            break;
  99.        }
  100.        return ;
  101.      }
  102.      catch( IOException e ){
  103.        Error.errCode=1;
  104.        Error.errStr="parse Xml error!";
  105.        return;
  106.      }
  107.    }
  108.  private static void parsekXMLItemsForServerList( XmlParser parser) throws IOException {
  109.    boolean inItem0 = false;
  110.    boolean inItem1 = false;
  111.    boolean inItem2 = false;
  112.    int ii=0;
  113.    while( true ){
  114.      ParseEvent event = parser.read();
  115.      switch( event.getType() ){
  116.        case Xml.START_TAG:
  117.          if (event.getName().equals("ServerID")){
  118.            inItem0=true;
  119.            ii++;
  120.          }
  121.          if( event.getName().equals( "Name" ) ){
  122.            inItem1 = true;
  123.          }
  124.          if ( event.getName().equals("IP")){
  125.            inItem2=true;
  126.          }
  127.          break;
  128.        case Xml.END_TAG:
  129.          if (event.getName().equals("ServerID")){
  130.            inItem0 = false;
  131.          }
  132.          if( event.getName().equals( "Name" ) ){
  133.            inItem1 = false;
  134.          }
  135.          if( event.getName().equals( "IP" ) ){
  136.            inItem2 = false;
  137.          }
  138.          break;
  139.        case Xml.TEXT:
  140.          String ss="";
  141.          ss=event.getText();
  142.          if (inItem2){
  143.            imValue[ii]=ss;
  144.          }
  145.          if( inItem1 ){
  146.            imList.append(ss,RoomImage);
  147.          }
  148.          if (inItem0){
  149.            imID[ii]=ss;
  150.          }
  151.          break;
  152.        case Xml.END_DOCUMENT:
  153.        return;
  154.      }
  155.    }
  156.  }
  157.  private static void parsekXMLItemsForRoomList( XmlParser parser) throws IOException {
  158.    boolean inItem0 = false;
  159.    boolean inItem1 = false;
  160.    boolean inItem2 = false;
  161.    boolean inItem3 = false;
  162.    boolean itemOver=false;
  163.    String s0="";
  164.    String ss="";
  165.    int ii=0;
  166.    while( true ){
  167.      ParseEvent event = parser.read();
  168.      switch( event.getType() ){
  169.        case Xml.START_TAG:
  170.          if (event.getName().equals("RoomID")){
  171.            inItem0=true;
  172.            ii++;
  173.            itemOver=false;
  174.          }
  175.          if( event.getName().equals( "Name" ) ){
  176.            inItem1 = true;
  177.          }
  178.          if ( event.getName().equals("MaxPlayerCount")){
  179.            inItem2=true;
  180.          }
  181.          if ( event.getName().equals("CurrentPlayerCount")){
  182.            inItem3=true;
  183.            itemOver=true;
  184.          }
  185.          break;
  186.        case Xml.END_TAG:
  187.          if (event.getName().equals("RoomID")){
  188.            inItem0 = false;
  189.          }
  190.          if( event.getName().equals( "Name" ) ){
  191.            inItem1 = false;
  192.          }
  193.          if( event.getName().equals( "MaxPlayerCount" ) ){
  194.            inItem2 = false;
  195.          }
  196.          if( event.getName().equals( "CurrentPlayerCount" ) ){
  197.            inItem3 = false;
  198.          }
  199.          break;
  200.        case Xml.TEXT:
  201.          s0 = event.getText();
  202.          if(itemOver){
  203.            ss=ss+"/"+s0+")";
  204.            imList.append(ss, RoomImage);
  205.            //System.out.println(ss);
  206.            ss="";
  207.          }
  208.          else{
  209.            if (inItem2){ss=ss+" (";}
  210.            if (inItem0){
  211.            }else{ ss=ss+s0;}
  212.          }
  213.          if (inItem0) {
  214.            imID[ii] = s0;
  215.          }
  216.          break;
  217.        case Xml.END_DOCUMENT:
  218.        return;
  219.      }
  220.    }
  221.  }
  222. //----get table list
  223.  private static void parsekXMLItemsForTableList( XmlParser parser) throws IOException {
  224.    boolean inItem0 = false;
  225.    boolean inItem1 = false;
  226.    boolean inItem2 = false;
  227.    boolean itemOver=false;
  228.    String s0="";
  229.    String ss="";
  230.    int ii=0;
  231.    while( true ){
  232.      ParseEvent event = parser.read();
  233.      switch( event.getType() ){
  234.        case Xml.START_TAG:
  235.          if (event.getName().equals("TableID")){
  236.            inItem0=true;
  237.            ii++;
  238.            itemOver=false;
  239.          }
  240.          if( event.getName().equals( "Name" ) ){
  241.            inItem1 = true;
  242.          }
  243.          if ( event.getName().equals("FreeSeatCount")){
  244.            inItem2=true;
  245.            itemOver=true;
  246.          }
  247.          break;
  248.        case Xml.END_TAG:
  249.          if (event.getName().equals("TableID")){
  250.            inItem0 = false;
  251.          }
  252.          if( event.getName().equals( "Name" ) ){
  253.            inItem1 = false;
  254.          }
  255.          if( event.getName().equals( "FreeSeatCount" ) ){
  256.            inItem2 = false;
  257.          }
  258.          break;
  259.        case Xml.TEXT:
  260.          s0 = event.getText();
  261.          if(itemOver){
  262.            ss=ss+"(free:"+s0+")";
  263.            imList.append(ss, TableImage);
  264.            //System.out.println(ss);
  265.            ss="";
  266.          }
  267.          else{
  268.            if (inItem0){
  269.            }else{ ss=ss+s0;}
  270.          }
  271.          if (inItem0) {
  272.            imID[ii] = s0;
  273.          }
  274.          break;
  275.        case Xml.END_DOCUMENT:
  276.        return;
  277.      }
  278.    }
  279.  }
  280. //---end table list
  281.  // -- login
  282.  private static void parsekXMLItemsForLogin( XmlParser parser) throws IOException {
  283.   boolean inItem0 = false;
  284.   while( true ){
  285.     ParseEvent event = parser.read();
  286.     switch( event.getType() ){
  287.       case Xml.START_TAG:
  288.         if (event.getName().equals("int")){
  289.           inItem0=true;
  290.         }
  291.         break;
  292.       case Xml.END_TAG:
  293.         if (event.getName().equals("int")){
  294.           inItem0 = false;
  295.         }
  296.         break;
  297.       case Xml.TEXT:
  298.         String ss="";
  299.         ss=event.getText();
  300.         if (inItem0){
  301.           url=ss;
  302.           //System.out.print("ss=");
  303.           //System.out.println(url);
  304.         }
  305.         break;
  306.       case Xml.END_DOCUMENT:
  307.       return;
  308.     }
  309.   }
  310. }
  311. //--- end login
  312. //--- if can sit ----
  313. private static void parsekXMLForIfCanSit( XmlParser parser) throws IOException {
  314.  boolean inItem0 = false;
  315.  while( true ){
  316.    ParseEvent event = parser.read();
  317.    switch( event.getType() ){
  318.      case Xml.START_TAG:
  319.        if (event.getName().equals("int")){
  320.          inItem0=true;
  321.        }
  322.        break;
  323.      case Xml.END_TAG:
  324.        if (event.getName().equals("int")){
  325.          inItem0 = false;
  326.        }
  327.        break;
  328.      case Xml.TEXT:
  329.        String ss="";
  330.        ss=event.getText();
  331.        if (inItem0){
  332.          url=ss;
  333.          //System.out.print("ss=");
  334.          //System.out.println(url);
  335.        }
  336.        break;
  337.      case Xml.END_DOCUMENT:
  338.      return;
  339.    }
  340.  }
  341. }
  342. //----end if can sit ----
  343.   public static String getIfCanSit(){
  344.     String result="";
  345.     url = "http://"+GameInfo.ServerAddress
  346.                    + "/gameservice/infomationservice.asmx/GetIfCanSit?gameID="
  347.                    + GameInfo.GameID+"&roomID="+GameInfo.RoomID
  348.                    + "&tableID="+GameInfo.TableID
  349.                    + "&accountID="+GameInfo.Account;
  350.     kind=5;
  351.     connect();
  352.     result=url;
  353.     System.out.println("if can sit result="+result);
  354.     return result;
  355.   }
  356.   public static void getSeat(){
  357.     //return seatID in imID
  358.     //return accountlist in imValue
  359.   }
  360. }