Realize a comunicação por chat de texto entre dois hosts. A comunicação é realizada em um ambiente IPv6 e completa funções de login e registro, chat ponto a ponto, chat em grupo e outras funções.
UDP é um protocolo sem conexão. A fonte e o terminal não estabelecem uma conexão antes de transmitir os dados. Quando desejam transmitir, eles simplesmente capturam os dados do aplicativo e os lançam na rede o mais rápido possível.
Os principais métodos utilizados no nível do protocolo de comunicação são:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
No processo de programação, é necessário um banco de dados para armazenar o nome de usuário, senha, status, endereço IP do usuário e porta do usuário. Ao selecionar o banco de dados, foi utilizado o banco de dados leve SQLite3 para facilitar a migração do banco de dados, etc.
nome da função | Função |
---|---|
iniciar(auto) | Usado para criar e abrir bancos de dados |
select_all(próprio) | Usado para obter todas as informações do usuário na tabela correspondente do banco de dados |
registrar(próprio, nome de usuário, senha, ip, porta) | Chamado durante o registro para adicionar informações do usuário |
search_username(próprio, nome de usuário) | Encontre informações do usuário com base no nome de usuário |
login_success(self, nome de usuário, ip, porta) | Após o login bem-sucedido, altere as informações de status do usuário no banco de dados |
login_check(self, nome de usuário, senha, ip, porta) | Usado para verificar se o nome de usuário e a senha estão corretos ao fazer login |
logout_success(self, nome de usuário) | Alterar o status do usuário quando ele sai |
db_close(auto) | Fechar banco de dados |
Insira o diretório onde o código está localizado nos dois hosts que podem se comunicar e execute python3 Client.py
e python3 Server.py
respectivamente. O cliente pode abrir vários servidores de acordo com a necessidade, mas o servidor só pode abrir um. Ao iniciar o servidor, o banco de dados será aberto.
Faça seleções de acordo com as instruções para obter diferentes funções. No bate-papo ponto a ponto, qualquer uma das partes pode encerrar o bate-papo enviando END e a outra parte pode confirmar de acordo com as instruções. O princípio de implementação do chat em grupo é semelhante e o processo de execução do teste também é semelhante.