sexta-feira, 15 de março de 2013

Fazendo um chat em java - parte 1


Para podermos nos comunicar vamos ter que criar primeiro a nossa classe servidora do chat. Ela irá rodar no nosso servidor principal, receberá as conexões dos clientes e fará a comunicação entre eles. Para entender melhor o funcionamento deste servidor, precisamos conhecer o que é um socket e um servidor.

A definição de socket é um ponto de conexão em um link de comunicação de mão dupla entre dois programas rodando na rede, este socket é caracterizada pelo endereço IP e a porta que a aplicação verifica. Toda conexão TCP é identificada unicamente por estes dois parâmetros. Vamos ver como esta comunicação funciona:

a) O servidor fica rodando e escutando o socket (porta) esperando por uma requisição de conexão de um cliente. (isto equivalente a dizer que ele fica em um loop sem fim como veremos no programa)

b) Já o cliente, deve conhecer o socket que irá conectar (endereço e porta do servidor). Para conectar o cliente realiza uma comunicação com o servidor na porta determinada, devendo se identificar para o servidor.

c) O servidor ao receber e autorizar a conexão, armazena a porta e endereço de onde vem a comunicação do cliente e mapeia este socket do cliente com o canal de comunicação. No nosso exemplo, usamos o nome do usuário que é enviando na mensagem de requisição para mapear com o scocket do cliente - criamos um hashmap com estas duas informações

d) Tendo o servidor aceitado a conexão, ele cria um novo socket para realizar a comunicação. Através deste socket o servidor consegue falar com o cliente.

e) Já no lado do cliente, se a conexão é aceita, o socket (do cliente) é criado com sucesso. O cliente pode agora utilizar este socket para comunicar com o servidor.

OBS: O servidor continuar continua esperando novas conexões pelo socket do servidor.

A comunicação é feita mediante a leitura ou escrita no socket. O vídeo abaixo representa este processo




Nenhum comentário:

Postar um comentário