Tenho uma duvida um bocado básica, comecei a estudar sockets mas estou com uma duvida…
Já fiz um chatzinho esta a funcionar bem, agora decidi fazer um jogo da velha com chat, a minha duvida e como o servidor cliente sabe se o k foi lançado e uma jogada ou uma frase no chat
Se pudessem dar um exemplo muito básico agradecia
Bom dia!
Estou sem exemplo no momento… mas posso te dar dicas!
Quando vc inicia o servidor, vc abre um serversocket e deixa num loop infinito, quando um cliente tenta conectar vc cria uma thread de comunicação com este cliente e entra no loop do serversocket novamente… basico esta comunicação!
E como funciona a comunicação chat?
Um cliente conversa com o servidor, o servidor entende e conversa com todos clientes conectados!
Ou seja, eu falo “oi” pro servidor, ele recebe corretamente, e manda pra todos clientes “FULANO DISSE: OI”!
E o jogo da velha, como seria?
O cliente mandaria o comando, o servidor recebe, e repassa o comando pro adversário!
Neste caso, vc tem que bloquear quais usuários estão jogando (no caso, 2, obviamente), e pra cada um colocar um lock (booleano), para impedir que um jogador efetue 2 jogadas seguidas!
Dae eu sou 10.1.1.1, e vc 10.1.1.2. Eu jogo, minha jogada vai pro servidor, ele atualiza o tabuleiro pra mim e pra vc, e liga o lock meu, e desliga o seu! Se eu tento jogar denovo, antes de vc, ele v q o lock tá ligado e não permite q eu jogue!
Vou ver se acho algum exemplo nos códigos da faculdade!
Mas ficou claro? Na estrutura cliente-servidor, tudo é feito por intermédio do servidor.
Já no P2P todos nós da rede têm qualidades de cliente e servidor, e podem conectar-se diretamente uns com outros!