|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.microedition.lcdui.Displayable javax.microedition.lcdui.Canvas mt.TelaBT mt.ServidorBT
public class ServidorBT
Recebe conexões (via Bluetooth) de outros celulares-cliente, exibe suas posições, configura e inicia a partida (criando os proxies JogadorBT para cada jogador remoto).
Nested Class Summary | |
---|---|
(package private) class |
ServidorBT.ThreadMonitoraClientes
Thread secunddária (verifica se houve desconexão de algum cliente). |
Field Summary | |
---|---|
(package private) javax.microedition.io.StreamConnection[] |
connClientes
Conexoes dos jogadores conectados. |
Fields inherited from class mt.TelaBT |
---|
apelidos, APELIDOS_CPU, display, localDevice, midlet, okApelidoCommand, regras, SEPARADOR_ENV, SEPARADOR_REC, txtApelido, UUID_BT, voltarCommand |
Fields inherited from class javax.microedition.lcdui.Canvas |
---|
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP |
Constructor Summary | |
---|---|
ServidorBT(MiniTruco midlet)
Inicializa o servidor |
Method Summary | |
---|---|
void |
commandAction(javax.microedition.lcdui.Command cmd,
javax.microedition.lcdui.Displayable arg1)
Processa comandos de menu exclusivos do servidor |
(package private) void |
desconecta(int slot)
Desconecta um jogador (ou notifica desistência do servidor) e exibe a tela de jogadores |
void |
encerraSessaoBT()
Interrompe as threads e quaisquer conexões existentes |
void |
enviaMensagem(int slot,
java.lang.String comando)
Envia uma linha de texto para o cliente no slot especificado. |
int |
getNumClientes()
Conta quantos clientes estão conectados |
int |
getPosicaoMesa(int i)
Recupera a posição na mesa para o jogador conectado na posição i. |
void |
run()
Loop da thread principal (que recebe e processa as conexões dos clientes) |
void |
setModoSetup(boolean isSetup)
Coloca o servidor no modo "jogo" (não aceita conexões e exibe a mesa de jogo) ou "setup" (exibe os usuários conectados e aceita novas conexões apenas se houver vaga). |
Methods inherited from class mt.TelaBT |
---|
alerta, alerta, log, paint, setTelaMsg, split |
Methods inherited from class javax.microedition.lcdui.Canvas |
---|
getGameAction, getHeight, getKeyCode, getKeyName, getWidth, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyPressed, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, showNotify |
Methods inherited from class javax.microedition.lcdui.Displayable |
---|
addCommand, isShown, removeCommand, setCommandListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
javax.microedition.io.StreamConnection[] connClientes
Constructor Detail |
---|
public ServidorBT(MiniTruco midlet)
midlet
- referência ao programa principalMethod Detail |
---|
public void enviaMensagem(int slot, java.lang.String comando)
Se o slot espedificado estiver vazio, não faz nada.
Se o cliente der erro, processa sua desconexão (principal motivo do synchronized).
slot
- índice do cliente em connClientes/outClientescomando
- texto do comando/notificação a enviarvoid desconecta(int slot)
slot
- slot do jogador a desconectar (0 a 2). Se for -1, notifica
desistência do servidor. Se for -2, não notifica nada (apenas
encerra e vai para a tela).public void run()
public int getNumClientes()
public void encerraSessaoBT()
encerraSessaoBT
in class TelaBT
public void setModoSetup(boolean isSetup)
Esta operação atualiza o indicador status
para A ou L (no
modo setup) ou J (no modo jogo). Caso ele já esteja previamente em X
(encerramento), o notifier é desligado, independente de
isSetup
isSetup
- true para modo "setup", false para modo "jogo"public int getPosicaoMesa(int i)
TelaBT
Este método permite que cliente e servidor compartilhem o código de desenho da tela (pois o que muda de um para outro é o "ponto de vista" mesmo - ambos têm que ter o jogador humano na posição 1)
getPosicaoMesa
in class TelaBT
i
- posição (1 a 4) na conexão (no cliente é a posição na lista
recebida; no servidor é a posição de jogo mesmo)
public void commandAction(javax.microedition.lcdui.Command cmd, javax.microedition.lcdui.Displayable arg1)
commandAction
in interface javax.microedition.lcdui.CommandListener
commandAction
in class TelaBT
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |