亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clientconnection.java

?? 實現客戶端和服務器之間的收發短信。可以有多個用戶登陸。比較簡單
?? JAVA
字號:
package cardserver;

import javax.microedition.io.SocketConnection;

/**
 * <p>Title: CardServer</p>
 *
 * <p>Description: lizhenpeng</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: LP&P</p>
 *
 * @author lipeng
 * @version 1.0
 */
import java.io.*;
import javax.microedition.io.*;
import java.util.*;

public class ClientConnection
  implements Runnable
{
  public SocketConnection socket;
  boolean isRunning;
  InputStream is;
  public OutputStream os;
  public ClientConnection Oppo;
  DataHead recvDataHead=new DataHead();
  DataHead sendDataHead=new DataHead();
  byte[] recvBuffer;
  byte[] sendBuffer;
  byte[] recvHeadBuffer=new byte[4];
  public String userName;
  Card [] totalCard = new Card[55];

  public ClientConnection(SocketConnection sock)
  {
    isRunning=true;
    socket=sock;
    try
    {
      is=socket.openInputStream();
      os=socket.openOutputStream();
    } catch(Exception e)
    {

    }
  }

  public void run()
  {
    while(isRunning)
    {
      try
      {
        is.read(recvHeadBuffer,0,4);
        recvDataHead.FillData(recvHeadBuffer,0);
        if(recvDataHead.size!=0)
        {
          // socket.get
          recvBuffer=new byte[recvDataHead.size];
          is.read(recvBuffer,0,recvDataHead.size);
          //處理數據
          ProcessData();
        } else
        {
          //處理信息
          ProcessData();
        }
      } catch(Exception e)
      {
        System.out.println(e);
        isRunning = false;
        break;
      }
    }
    MainForm.inst.userList.removeElement(this);

  }

  public void ProcessData()
  {
    switch(recvDataHead.command)
    {
      //發送本次產生的唯一的ID
      case NetProtocol.LOGIN:
      {
        try
        {
          userName=new String(this.recvBuffer);
          int port;
          int size=MainForm.inst.userList.size();
          byte[] buffer=new byte[32*(size-1)];
          int place=0;
          for(int i=0;i<size;i++)
          {
            ClientConnection client=(ClientConnection)MainForm.inst.userList.
              elementAt(i);
            if(client!=this)
            {
              byte[] nameBuffer=client.userName.getBytes();
              System.arraycopy(nameBuffer,0,buffer,place,nameBuffer.length);
              place+=32;
            }
          }
          this.sendDataHead.command=NetProtocol.HASLOGIN;
          sendDataHead.size=(char)buffer.length;
          this.sendBuffer=sendDataHead.getBytes();
          os.write(sendBuffer,0,sendBuffer.length);
          os.write(buffer,0,buffer.length);
          os.flush();
        } catch(Exception e)
        {
          System.out.println(e);
        }
      }
      break;
      case NetProtocol.REQUEST_STARTGAME:
      {
        String name=new String(this.recvBuffer);
        int size=MainForm.inst.userList.size();
        for(int i=0;i<size;i++)
        {
          ClientConnection client=(ClientConnection)MainForm.inst.userList.
            elementAt(i);
          if(client.userName.compareTo(name)==0)
          {
            this.Oppo = client;
            client.Oppo = this;
            mixCard();
            try
            {
              byte[] buffer1=new byte[4*54/2];
              byte[] buffer2=new byte[4*54/2];
              int place=0;
              for(i=1;i<28;i++)
              {
                System.arraycopy(totalCard[i].getBytes(),0,buffer1,place,4);
                place+=4;
              }
              place=0;
              for(i=28;i<54;i++)
              {
                System.arraycopy(totalCard[i].getBytes(),0,buffer2,place,4);
                place+=4;
              }
              sendDataHead.command=NetProtocol.STARTGAME_FIRST;
              sendDataHead.size=(char)(buffer1.length+buffer2.length);
              sendBuffer=sendDataHead.getBytes();
              os.write(sendBuffer,0,sendBuffer.length);
              os.write(buffer1,0,buffer1.length);
              os.write(buffer2,0,buffer2.length);
              Oppo.sendDataHead.command = NetProtocol.STARTGAME_LAST;
              Oppo.sendDataHead.size = (char)(buffer2.length+buffer1.length);
              Oppo.sendBuffer = Oppo.sendDataHead.getBytes();
              Oppo.os.write(Oppo.sendBuffer,0,Oppo.sendBuffer.length);
              Oppo.os.write(buffer2,0,buffer2.length);
              Oppo.os.write(buffer1,0,buffer1.length);
              //改變用戶狀態為游戲中
              //通知開始
              //發牌
              //先后順序
            }
            catch(Exception e)
            {
              System.out.print(e);
            }
            break;
          }
        }
      }
      break;
      case NetProtocol.POST_CARD:
      {
        try
        {
          this.Oppo.sendDataHead.command=NetProtocol.OPPO_POSTCARD;
          this.Oppo.sendDataHead.size=(char)recvBuffer.length;
          this.Oppo.sendBuffer=Oppo.sendDataHead.getBytes();
          Oppo.os.write(Oppo.sendBuffer,0,Oppo.sendBuffer.length);
          this.Oppo.os.write(this.recvBuffer,0,this.recvBuffer.length);
        }
        catch(Exception e)
        {
          System.out.print(e);
        }
      }
      break;
      case NetProtocol.REJECT_CARD:
      {
        try
        {
          this.Oppo.sendDataHead.command=NetProtocol.OPPO_REJECT;
          this.Oppo.sendDataHead.size=0;
          this.Oppo.sendBuffer=Oppo.sendDataHead.getBytes();
          Oppo.os.write(Oppo.sendBuffer,0,Oppo.sendBuffer.length);
        }
        catch(Exception e)
        {
          System.out.print(e);
        }
      }
      break;
    }
  }

  void mixCard()
  {
    initCard();
    Random rand=new Random();
    for(int i=1;i<totalCard.length;i++)
    {
      int order = Math.abs(rand.nextInt())%(totalCard.length-1)+1;
      Card temp=totalCard[i];
      totalCard[i]=totalCard[order];
      totalCard[order]=temp;
    }
  }
  /*
    id 為1-54
   kind 為1-5

   1為紅心
   2為黑桃
   3為方塊
   4位梅花
   5為王
   num為 1-13
  */
  void initCard()
  {
    for(int i=0;i<totalCard.length;i++)
    {
      totalCard[i]=new Card();
      totalCard[i].id = (byte)(i+1);
    }
    for(int i=1;i<14;i++)
    {
      totalCard[i].kind=1;
      totalCard[i].num=(byte)i;
    }
    for(int i=14;i<27;i++)
    {
      totalCard[i].kind=2;
      totalCard[i].num=(byte)(i-13);
    }
    for(int i=27;i<40;i++)
    {
      totalCard[i].kind=3;
      totalCard[i].num=(byte)(i-26);
    }
    for(int i=40;i<53;i++)
    {
      totalCard[i].kind=4;
      totalCard[i].num=(byte)(i-39);
    }
    totalCard[53].kind = 5;
    totalCard[53].num = 0;
    totalCard[54].kind = 5;
    totalCard[54].num = 1;
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产·精品毛片| 亚洲一区二区成人在线观看| 国产一区二区精品久久| 久久久精品天堂| 日韩一区和二区| 欧美天天综合网| 色婷婷狠狠综合| 成人午夜短视频| 国产在线不卡视频| 日本女人一区二区三区| 性做久久久久久免费观看欧美| 国产精品精品国产色婷婷| 日韩欧美电影一区| 欧美一区二区三级| 日韩一区二区影院| 日韩一级成人av| 日韩丝袜美女视频| 欧美一级日韩免费不卡| 欧美在线免费视屏| 色天天综合久久久久综合片| 在线区一区二视频| 99精品欧美一区二区三区小说| 成人免费va视频| 色综合一个色综合| 日本久久电影网| 日本韩国欧美一区| 欧美亚洲动漫另类| 欧美在线播放高清精品| 欧美亚洲一区三区| 在线不卡a资源高清| 欧美视频一区二区| 欧美日韩国产一级片| 欧美伦理电影网| 日韩欧美一二三区| 久久综合色综合88| 国产精品久久久久久久久晋中| 最新不卡av在线| 亚洲成va人在线观看| 精品在线免费观看| 丁香婷婷深情五月亚洲| 色综合网色综合| 欧美日韩视频在线观看一区二区三区 | 欧美色视频在线| 欧美sm极限捆绑bd| 1000精品久久久久久久久| 一区二区在线观看视频| 亚洲国产精品自拍| 国产麻豆精品在线| gogo大胆日本视频一区| 丰满少妇久久久久久久| 91麻豆国产福利精品| 欧美猛男gaygay网站| 国产亚洲va综合人人澡精品| 一区二区三区视频在线观看| 麻豆国产精品官网| 欧洲精品一区二区| 久久丝袜美腿综合| 蜜乳av一区二区三区| 国产成人精品免费| 欧美伦理视频网站| 中文字幕日本不卡| 久久av老司机精品网站导航| 色综合一区二区| 国产清纯白嫩初高生在线观看91| 一区二区三区不卡视频| 国产成人一区在线| 欧美日韩国产精选| 国产精品久久久久一区| 日本欧美韩国一区三区| 91香蕉国产在线观看软件| 日韩免费福利电影在线观看| 中文字幕在线不卡视频| 久久成人18免费观看| 欧美日韩久久一区| 国产精品视频一区二区三区不卡| 美女性感视频久久| 欧美亚洲尤物久久| 久久嫩草精品久久久久| 日韩一区精品视频| 成人性生交大片免费| 欧美日韩国产高清一区二区 | 亚洲欧美在线观看| 久久99精品一区二区三区三区| 91麻豆自制传媒国产之光| 国产精品私人影院| 国产乱码精品一区二区三区五月婷 | 一本到不卡免费一区二区| 国产偷国产偷精品高清尤物| 亚洲综合精品久久| 99视频精品在线| 日本伊人色综合网| 欧美最新大片在线看| 亚洲欧洲综合另类| 国模娜娜一区二区三区| 精品国产乱码久久久久久闺蜜| 污片在线观看一区二区| 这里是久久伊人| 亚洲va韩国va欧美va| 欧美日韩亚洲不卡| 五月婷婷久久综合| 欧美日韩精品欧美日韩精品| 亚洲成av人**亚洲成av**| 波多野结衣亚洲一区| 中文字幕日本不卡| 在线欧美小视频| 肉丝袜脚交视频一区二区| 7777精品久久久大香线蕉 | 欧美日韩和欧美的一区二区| 三级成人在线视频| 欧美一级片在线看| 国产精品一二三区在线| 国产欧美日韩三级| 成人av在线播放网址| 五月天中文字幕一区二区| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲欧洲精品一区二区精品久久久| 国产寡妇亲子伦一区二区| 91精品国产综合久久福利 | 日本不卡视频在线观看| 精品少妇一区二区三区日产乱码| 激情久久五月天| ㊣最新国产の精品bt伙计久久| 色香蕉成人二区免费| 一区二区三区在线观看动漫| 777色狠狠一区二区三区| 丝瓜av网站精品一区二区| 337p日本欧洲亚洲大胆色噜噜| 成人精品视频.| 午夜精品福利一区二区三区蜜桃| 精品国产免费视频| 99久久久精品免费观看国产蜜| 亚洲风情在线资源站| 26uuu欧美| 欧美熟乱第一页| 狠狠色丁香婷综合久久| 亚洲综合色区另类av| 久久精品亚洲乱码伦伦中文| 欧美性受极品xxxx喷水| 国产美女视频91| 日韩精品成人一区二区在线| 国产色产综合色产在线视频| 欧美三级一区二区| 成人福利电影精品一区二区在线观看| 五月天久久比比资源色| 综合亚洲深深色噜噜狠狠网站| 91精品麻豆日日躁夜夜躁| 99re这里都是精品| 国产毛片一区二区| 天堂在线亚洲视频| 亚洲一区av在线| 成人欧美一区二区三区| 国产欧美一区在线| 精品久久久久久无| 5858s免费视频成人| 色婷婷av一区| 成人丝袜18视频在线观看| 亚洲成人精品一区| 国产精品亲子乱子伦xxxx裸| 精品99一区二区| 日韩视频免费观看高清完整版| 91福利在线看| 色综合久久久网| 不卡欧美aaaaa| 国产一区二区三区久久悠悠色av| 美腿丝袜亚洲综合| 日本人妖一区二区| 亚洲成a人v欧美综合天堂| 爽爽淫人综合网网站| 亚洲影视资源网| 欧美一级午夜免费电影| 欧美色倩网站大全免费| 91麻豆精品国产91久久久使用方法 | 色综合久久88色综合天天6| 色狠狠一区二区三区香蕉| 欧美精品在线观看一区二区| 精品国产91亚洲一区二区三区婷婷| 久久久噜噜噜久久中文字幕色伊伊| 中文字幕乱码一区二区免费| 国产精品免费av| 亚洲精品国产一区二区精华液| 首页国产欧美久久| 国产一区二区三区日韩| 色悠久久久久综合欧美99| 日韩一区二区影院| 国产精品网站在线观看| 天天免费综合色| 粉嫩av一区二区三区粉嫩| 欧美视频一区在线观看| 久久青草国产手机看片福利盒子| 亚洲欧洲日产国产综合网| 日产精品久久久久久久性色| 丁香亚洲综合激情啪啪综合| 欧美久久久久久蜜桃| 国产精品乱码妇女bbbb| 日本成人在线网站| av亚洲产国偷v产偷v自拍| 欧美一区二区成人| 亚洲免费观看在线观看| 国产综合色在线视频区| 欧美丝袜丝交足nylons|