⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gobangserver.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
package com.j2medev.chapter5;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class GoBangServer implements Runnable{
    
    private Thread thread = null;
    private ServerSocket server = null;
    //GameEngine管理两个客户端会话
    private boolean stop = false;
    public static List rooms = new ArrayList();
    public static final int MAX_ROOM = 10;
   
    public static void main(String[] args){
        new GoBangServer();
    }
    public GoBangServer() {
        if(thread == null){
            try {
                //创建服务器,在2200端口监听客户端连接
                server = new ServerSocket(2200);
                for(int i = 0;i<MAX_ROOM;i++){
                    //初始化MAX_ROOM个游戏房间
                    rooms.add(new GoBangRoom());
                }
                thread = new Thread(this);
                thread.start();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    private Room getAvailableRoom(){
        for(int i = 0;i<rooms.size();i++){
            Room r = (Room)rooms.get(i);
            if(r.canJoin()){
                //返回可加入的游戏房间
                return r;
            }
        }
        //无可用房间
        return null;
    }

    public void run(){
        while(!stop){
            try{
                Socket socket = server.accept();
                Room room = getAvailableRoom();
                if(room != null){
                    room.addPlayer(new Session(socket));
                }else{
                    //无可用房间,未处理
                    System.out.println("You can not join");
                }
            }catch(IOException ex){
                ex.printStackTrace();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -