Система контроля доступа мобильных пользователей на основе технологии Bluetooth

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



p>

logger.debug("[New connection: IP = " + connection.getRemoteAddress().getHostAddress() + "; Address = " +

connection.getRemoteAddress().getHostName() + ";]");

}

ByteBuffer[] bbuf = connection.readAvailable();

int index = 0;

byte[] buf = null;

for(int i=0; i < bbuf.length; i++)

{

buf = new byte[bbuf[i].capacity()];

for(int k=0; k < buf.length; k++)

buf[k] = bbuf[i].get();

if(cur_gmr.last_msg == null)

cur_gmr.last_msg = new NetMessage();

while( (index = cur_gmr.last_msg.createFromBuffer(buf,index)) > 0)

{

if(cur_gmr.last_msg.complete)

ProcessMsg(cur_gmr);

if(cur_gmr.last_msg == null)

cur_gmr.last_msg = new NetMessage();

}

if(cur_gmr.last_msg != null)

{

ProcessMsg(cur_gmr);

}

buf = null;

}

return true;

}

private void ProcessMsg(NetUser usr)

{

NetMessage nm = null;

Random rnd = null;

List params = null;

boolean status = false;

logger.debug("[" + usr.last_msg.type + " from " + usr.userName + "(" + usr.ID + ")]");

usr.bytes_send += usr.last_msg.body.length;

switch(usr.last_msg.type)

{

case MSGC_LOGIN:

status = userMgr.clientLogin(usr, usr.last_msg.params);

break;

case MSGC_PING:

int userID = (Integer)usr.last_msg.params.get(0);

String key = (String)usr.last_msg.params.get(1);

usr.lastPingTime = MiscFunc.getSeconds();

if(userID != usr.ID && !key.equals(usr.currentKey))

{

logger.info("Client info is wrong!; Removing client from user list");

userMgr.removeClient(usr);

try

{

usr.connection.close();

}

catch (IOException ex)

{

ex.printStackTrace();

}

}

break;

default:

break;

}

usr.last_msg.params.clear();

usr.last_msg = null;

nm = null;

}

public boolean onConnect(INonBlockingConnection connection) throws IOException

{

return true;

}

public boolean onDisconnect(INonBlockingConnection connection) throws IOException

{

NetUser player = userMgr.findByConnection(connection);

if(player != null)

{

logger.info("[Client " + player.userName + "(" + player.ID + ") disconnected]");

userMgr.removeClient(player);

}

else

{

logger.warn("[Unknown client disconnected]");

}

return true;

}

}

Клиент :

Main;javax.microedition.midlet.*;javax.microedition.lcdui.*;class BTMidlet extends MIDlet implements CommandListener{

Display display = null;

BTApp game = null;

Form form = null;

TextField textField = null;

int fieldType;

public BTMidlet(){

super();

display = Display.getDisplay(this);

game = new BTApp(this);

display.setCurrent(game);

game.start();

}

public void startApp() {

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

notifyDestroyed();

}

public void quit(){

game.stop();

notifyDestroyed();

}

public void commandAction(Command command, Displayable displayable)

{

}

}