Realice la comunicación por chat de texto entre dos hosts. La comunicación se lleva a cabo en un entorno IPv6 y completa las funciones de inicio de sesión y registro, chat punto a punto, chat grupal y otras funciones.
UDP es un protocolo sin conexión. La fuente y el terminal no establecen una conexión antes de transmitir datos. Cuando quiere transmitir, simplemente toma los datos de la aplicación y los arroja a la red lo más rápido posible.
Los principales métodos utilizados a nivel de protocolo de comunicación son:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
En el proceso de programación, se necesita una base de datos para almacenar el nombre de usuario, la contraseña, el estado, la dirección IP del usuario y el puerto. Al seleccionar la base de datos se utilizó la base de datos ligera SQLite3 para facilitar la migración de la base de datos, etc.
nombre de la función | Función |
---|---|
inicio(yo) | Se utiliza para crear y abrir bases de datos. |
seleccionar_todos(yo) | Se utiliza para obtener toda la información del usuario en la tabla correspondiente de la base de datos. |
registrarse(yo, nombre de usuario, contraseña, ip, puerto) | Llamado durante el registro para agregar información del usuario. |
search_username(yo, nombre de usuario) | Encuentre información de usuario según el nombre de usuario |
login_success(self, nombre de usuario, ip, puerto) | Después de iniciar sesión correctamente, cambie la información de estado del usuario en la base de datos |
login_check(self, nombre de usuario, contraseña, ip, puerto) | Se utiliza para comprobar si el nombre de usuario y la contraseña son correctos al iniciar sesión |
logout_success(yo, nombre de usuario) | Cambiar el estado del usuario cuando el usuario cierra sesión |
db_close(yo) | Cerrar base de datos |
Ingrese el directorio donde se encuentra el código en los dos hosts que pueden comunicarse y ejecute python3 Client.py
y python3 Server.py
respectivamente. El cliente puede abrir varios servidores según sus necesidades, pero el servidor solo puede abrir uno. Al iniciar el servidor, se abrirá la base de datos.
Realice selecciones de acuerdo con las indicaciones para lograr diferentes funciones. En el chat de igual a igual, cualquiera de las partes puede cerrar el chat enviando END y la otra parte puede confirmar según las indicaciones. El principio de implementación del chat grupal es similar y el proceso de ejecución de la prueba también es similar.