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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? omokserver.java

?? 介紹java的網(wǎng)絡(luò)編程
?? JAVA
字號:
import java.net.*;
import java.io.*;
import java.util.*;
public class OmokServer{
  private ServerSocket server;
  private BManager bMan=new BManager();
  private Random rnd= new Random();
  public OmokServer(){}
  void startServer(){
    try{
      server=new ServerSocket(7777);
      System.out.println("輯滾家南撈 積己登菌嚼聰促.");
      while(true){
        Socket socket=server.accept();
        Omok_Thread ot=new Omok_Thread(socket);
        ot.start();
        bMan.add(ot);
        System.out.println("立加磊 薦: "+bMan.size());
      }
    }catch(Exception e){
      System.out.println(e); 
    }
  }
  public static void main(String[] args){
    OmokServer server=new OmokServer();
    server.startServer();
  }
  class Omok_Thread extends Thread{
    private int roomNumber=-1;
    private String userName=null;
    private Socket socket;
    private boolean ready=false;
    private BufferedReader reader;
    private PrintWriter writer;
    Omok_Thread(Socket socket){
      this.socket=socket;
    }
    Socket getSocket(){
      return socket; 
    }
    int getRoomNumber(){
      return roomNumber;
    }
    String getUserName(){
      return userName;
    }
    boolean isReady(){
      return ready; 
    }
    public void run(){
      try{
        reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        writer=new PrintWriter(socket.getOutputStream(), true);
        String msg;
        while((msg=reader.readLine())!=null){
          if(msg.startsWith("[NAME]")){
            userName=msg.substring(6);
          }   
          else if(msg.startsWith("[ROOM]")){
            int roomNum=Integer.parseInt(msg.substring(6));
            if( !bMan.isFull(roomNum)){
              if(roomNumber!=-1)
                bMan.sendToOthers(this, "[EXIT]"+userName);
              roomNumber=roomNum;
              writer.println(msg);
              writer.println(bMan.getNamesInRoom(roomNumber));
              bMan.sendToOthers(this, "[ENTER]"+userName);
            }    
            else writer.println("[FULL]");
          }
          else if(roomNumber>=1 && msg.startsWith("[STONE]"))
            bMan.sendToOthers(this, msg);
          else if(msg.startsWith("[MSG]"))
            bMan.sendToRoom(roomNumber, "["+userName+"]: "+msg.substring(5));
          else if(msg.startsWith("[START]")){
            ready=true;
            if(bMan.isReady(roomNumber)){
              int a=rnd.nextInt(2);
              if(a==0){
                writer.println("[COLOR]BLACK");
                bMan.sendToOthers(this, "[COLOR]WHITE");
              }  
              else{
                writer.println("[COLOR]WHITE");
                bMan.sendToOthers(this, "[COLOR]BLACK");
              }
            }  
          }
          else if(msg.startsWith("[STOPGAME]"))
            ready=false;
          else if(msg.startsWith("[DROPGAME]")){
            ready=false;
            bMan.sendToOthers(this, "[DROPGAME]");
          }
          else if(msg.startsWith("[WIN]")){
            ready=false;
            writer.println("[WIN]");
            bMan.sendToOthers(this, "[LOSE]");
          }
        }
      }catch(Exception e){
      }finally{
        try{
          bMan.remove(this);
          if(reader!=null) reader.close();
          if(writer!=null) writer.close();
          if(socket!=null) socket.close();
          reader=null; writer=null; socket=null;
          System.out.println(userName+"叢撈 立加闌 讒菌嚼聰促.");
          System.out.println("立加磊 薦: "+bMan.size());
          bMan.sendToRoom(roomNumber,"[DISCONNECT]"+userName);
        }catch(Exception e){}
      }
    }
  }
  class BManager extends Vector{
    BManager(){}
    void add(Omok_Thread ot){
      super.add(ot);
    }
    void remove(Omok_Thread ot){
       super.remove(ot);
    }
    Omok_Thread getOT(int i){
      return (Omok_Thread)elementAt(i);
    }
    Socket getSocket(int i){
      return getOT(i).getSocket();
    }
    void sendTo(int i, String msg){
      try{
        PrintWriter pw= new PrintWriter(getSocket(i).getOutputStream(), true);
        pw.println(msg);
      }catch(Exception e){}  
    }
    int getRoomNumber(int i){
      return getOT(i).getRoomNumber();
    }
    synchronized boolean isFull(int roomNum){
      if(roomNum==0)return false;
      int count=0;
      for(int i=0;i<size();i++)
        if(roomNum==getRoomNumber(i))count++;
      if(count>=2)return true;
      return false;
    }
    void sendToRoom(int roomNum, String msg){
      for(int i=0;i<size();i++)
        if(roomNum==getRoomNumber(i))
          sendTo(i, msg);
    }
    void sendToOthers(Omok_Thread ot, String msg){
      for(int i=0;i<size();i++)
        if(getRoomNumber(i)==ot.getRoomNumber() && getOT(i)!=ot)
          sendTo(i, msg);
    }
    synchronized boolean isReady(int roomNum){
      int count=0;
      for(int i=0;i<size();i++)
        if(roomNum==getRoomNumber(i) && getOT(i).isReady())
          count++;
      if(count==2)return true;
      return false;      
    }
    String getNamesInRoom(int roomNum){
      StringBuffer sb=new StringBuffer("[PLAYERS]");
      for(int i=0;i<size();i++)
        if(roomNum==getRoomNumber(i))
          sb.append(getOT(i).getUserName()+"\t");
      return sb.toString();
    }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av中文字幕一区二区三区| 国产欧美日韩三级| 亚洲成a人片在线不卡一二三区| 91浏览器入口在线观看| 亚洲欧洲精品一区二区三区不卡| 国产成人av电影在线播放| 国产日韩成人精品| 成人综合婷婷国产精品久久蜜臀| 国产午夜精品一区二区三区视频 | 国产精品视频在线看| 成人小视频在线| 亚洲精选免费视频| 欧美二区在线观看| 国产一区二区在线观看视频| 久久久久久电影| 91免费视频网| 丝袜美腿一区二区三区| 亚洲精品在线观| 色婷婷综合久久久中文一区二区| 亚洲h在线观看| 久久伊99综合婷婷久久伊| av色综合久久天堂av综合| 怡红院av一区二区三区| 国产精品久久久久影院色老大| av网站免费线看精品| 午夜影视日本亚洲欧洲精品| 欧美videos中文字幕| 波波电影院一区二区三区| 天天色综合天天| 国产精品免费久久久久| 6080日韩午夜伦伦午夜伦| 懂色av噜噜一区二区三区av| 亚洲成人免费在线观看| 日本一区二区三区久久久久久久久不| 色综合网站在线| 久久99精品久久久久久动态图| 中文字幕一区在线| 日韩欧美你懂的| 色偷偷一区二区三区| 激情久久五月天| 一区二区三区在线观看视频| 久久久久久麻豆| 制服丝袜国产精品| 99久久精品情趣| 韩国毛片一区二区三区| 亚洲成精国产精品女| 亚洲欧洲av色图| 26uuu久久天堂性欧美| 欧美日韩久久不卡| 99国产麻豆精品| 国产精品一区一区三区| 日韩国产欧美在线播放| 亚洲激情男女视频| 国产精品嫩草影院av蜜臀| 日韩欧美中文字幕制服| 欧美羞羞免费网站| 91丨porny丨国产| 色综合色综合色综合 | 亚洲激情网站免费观看| 国产免费观看久久| 精品久久人人做人人爰| 欧美一区二区在线免费观看| 欧美系列亚洲系列| 色综合视频在线观看| 9i看片成人免费高清| 国产成人久久精品77777最新版本| 日本在线不卡一区| 婷婷六月综合网| 亚洲国产精品一区二区久久恐怖片| 亚洲欧美怡红院| 日韩理论片在线| 亚洲日穴在线视频| 亚洲日本免费电影| 亚洲欧美日韩久久| 亚洲精品亚洲人成人网在线播放| 国产精品护士白丝一区av| 国产亚洲精品超碰| 国产女人aaa级久久久级 | 亚洲成国产人片在线观看| 亚洲欧美福利一区二区| 亚洲欧美乱综合| 亚洲女爱视频在线| 亚洲欧洲制服丝袜| 亚洲激情第一区| 亚洲成人高清在线| 视频一区在线播放| 久久国产精品99久久人人澡| 六月丁香婷婷色狠狠久久| 久久国产乱子精品免费女| 国产在线国偷精品免费看| 国产精品99久| 99热99精品| 在线看日韩精品电影| 欧美日韩一区二区三区免费看 | 久久免费电影网| 国产三级久久久| 亚洲区小说区图片区qvod| 亚洲成人免费av| 激情综合色丁香一区二区| 国产一区二区三区电影在线观看| 国产成人精品一区二区三区四区 | 久久精品国产999大香线蕉| 国产一区二区三区在线观看免费 | 国产精品久久综合| 亚洲黄色性网站| 男女视频一区二区| 成人午夜视频福利| 欧美最猛性xxxxx直播| 日韩一区二区在线观看| 久久麻豆一区二区| 一区二区三区国产豹纹内裤在线| 奇米精品一区二区三区在线观看| 国产精选一区二区三区| 91久久免费观看| 欧美成人精品福利| 国产精品久久久久一区| 午夜欧美2019年伦理| 国产麻豆精品视频| 欧美日韩免费在线视频| 久久午夜老司机| 亚洲午夜免费福利视频| 国产电影一区在线| 欧美精三区欧美精三区| 欧美国产视频在线| 午夜久久福利影院| 成人午夜av在线| 欧美一级黄色片| 亚洲激情五月婷婷| 国产成人超碰人人澡人人澡| 欧美日韩在线直播| 中文字幕乱码一区二区免费| 亚洲bt欧美bt精品| 成人av在线一区二区三区| 欧美一级欧美三级| 亚洲色图丝袜美腿| 国产精品99久久久久久宅男| 欧美福利电影网| 一区二区三区精品视频| 丁香六月久久综合狠狠色| 日韩欧美成人午夜| 午夜影视日本亚洲欧洲精品| 91网站最新网址| 欧美激情一区二区三区在线| 日日摸夜夜添夜夜添国产精品| av不卡在线播放| 国产欧美日韩另类一区| 久久精品国产99久久6| 欧美日韩亚洲综合一区 | 色欧美日韩亚洲| 久久精品一区二区| 久久成人久久爱| 欧美一个色资源| 亚洲r级在线视频| 91官网在线观看| 中文字幕在线不卡一区二区三区| 国产一区二区伦理| 日韩精品影音先锋| 美女一区二区三区在线观看| 欧美日韩成人高清| 亚洲一区二区高清| 在线观看三级视频欧美| 亚洲欧美aⅴ...| 色婷婷综合激情| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产露脸91国语对白| 久久中文娱乐网| 国产精品一二三四| 久久精品综合网| 国产成人av一区二区三区在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品亚洲porn| 精品国免费一区二区三区| 久草这里只有精品视频| 久久亚洲免费视频| 国产成人精品免费在线| 亚洲国产成人自拍| 成人黄色av网站在线| 亚洲欧美综合在线精品| 一本大道久久a久久精二百| 亚洲人精品一区| 精品视频1区2区| 麻豆一区二区三| ww久久中文字幕| 成人av网在线| 一级中文字幕一区二区| 91精品免费观看| 国产一区二区福利视频| 国产精品久久久久天堂| 91黄视频在线观看| 石原莉奈在线亚洲二区| 欧美不卡在线视频| 国产精品18久久久久久久久久久久| 国产精品毛片高清在线完整版| 色综合久久综合网97色综合| 午夜久久久久久| 久久久久久久久久久黄色| 不卡的看片网站| 亚洲大尺度视频在线观看| 精品国产一区二区在线观看| 成人午夜av电影|