You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
73 lines
1.8 KiB
7 months ago
|
import socket
|
||
|
import tkinter as tk
|
||
|
|
||
|
# CREAR SOCKET TCP/IP
|
||
|
socket_cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
|
socket_cliente.connect(('localhost', 8088))
|
||
|
|
||
|
#ESTADO CONEXION
|
||
|
conectado = True
|
||
|
|
||
|
def principal():
|
||
|
|
||
|
# VENTANA
|
||
|
raiz = tk.Tk()
|
||
|
raiz.title("Cliente")
|
||
|
|
||
|
# LABEL INGRESAR NOMBRE
|
||
|
entrada_nombre = tk.Entry(raiz, font=("Arial", 14))
|
||
|
entrada_nombre.pack(pady=10)
|
||
|
|
||
|
# ENVIAR NOMBRE AL SERVIDOR
|
||
|
def enviar_nombre_callback():
|
||
|
nombre = entrada_nombre.get()
|
||
|
enviar_nombre(nombre, entrada_nombre, boton_enviar)
|
||
|
|
||
|
# Botón para enviar el nombre
|
||
|
boton_enviar = tk.Button(raiz, text="Enviar Nombre", command=enviar_nombre_callback)
|
||
|
boton_enviar.pack(pady=5)
|
||
|
|
||
|
# Botón para desconectar
|
||
|
boton_desconectar = tk.Button(raiz, text="Desconectar", command=desconectar)
|
||
|
boton_desconectar.pack(pady=5)
|
||
|
|
||
|
# Iniciar el bucle de eventos de la interfaz gráfica
|
||
|
raiz.mainloop()
|
||
|
|
||
|
|
||
|
def enviar_nombre(nombre, entrada_nombre, boton_enviar):
|
||
|
global conectado
|
||
|
try:
|
||
|
if conectado:
|
||
|
# ENVIAR NOMBRE
|
||
|
socket_cliente.send(nombre.encode())
|
||
|
|
||
|
#RESPUESTA SERVIDOR
|
||
|
respuesta = socket_cliente.recv(1024).decode()
|
||
|
print(respuesta)
|
||
|
|
||
|
# DESHABILITAR
|
||
|
entrada_nombre.config(state=tk.DISABLED)
|
||
|
boton_enviar.config(state=tk.DISABLED)
|
||
|
except Exception as e:
|
||
|
print("Error:", e)
|
||
|
conectado = False
|
||
|
|
||
|
def desconectar():
|
||
|
global conectado
|
||
|
try:
|
||
|
if conectado:
|
||
|
# NOTIFICAR AL SERVIDOR
|
||
|
socket_cliente.send("desconectar".encode())
|
||
|
|
||
|
# CERRAR SOCKET
|
||
|
socket_cliente.close()
|
||
|
conectado = False
|
||
|
except Exception as e:
|
||
|
print("Error al desconectar:", e)
|
||
|
|
||
|
|
||
|
# BLOQUE DE INICIALIZACION
|
||
|
if __name__ == "__main__":
|
||
|
principal()
|