- Saludo (formateando salidas) JSON
#!/usr/local/bin/python
#-*- coding: utf-8 -*-
import socket
import json
import base64
import signal
import sys
from typing import NoReturn
def signal_handler(sig, frame) -> NoReturn:
print('¡Hasta luego!')
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
def servidor() -> None:
"""
Servidor que envía un mensaje al cliente
Details:
--------
message: dict[str,str] = {
"mensaje": "Hola, cliente",
"status": "200",
"error": ""
}
conn.sendall(json.dumps(message).encode("utf-8"))
args
----
None
return
------
None
example
-------
servidor()
"""
# creamos el socket
try:
s: socket.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Socket creado exitosamente")
s.bind(("127.0.0.1", 1234))
s.listen(5)
print("Esperando conexión...")
while True:
conn, addr = s.accept()
print(f"Conexión establecida con {addr}")
message: dict[str,str] = {
"mensaje": "Hola, cliente",
"status": "200",
"error": ""
}
conn.sendall(base64.b64encode(json.dumps(message).encode("utf-8")))
conn.close()
except socket.error as err:
print(f"Error al crear el socket: {err}")
finally:
s.close()
if __name__ == "__main__":
servidor()
#!/usr/local/bin/python
#-*- coding: utf-8 -*-
import socket
import json
import base64
import signal
import sys
from typing import NoReturn
def signal_handler(sig, frame) -> NoReturn:
print('¡Hasta luego!')
sys.exit(0)
def cliente() -> None:
"""
Cliente que recibe un mensaje del servidor
Details:
--------
s: socket.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("
data = s.recv(1024)
message: dict[str,str] = json.loads(
base64.b64decode(data).decode("utf-8"))
print("Mensaje recibido: \\n{}"
.format(json.dumps(message, indent=4)))
args
----
None
return
------
None
example
-------
cliente()
"""
try:
# deepcode ignore MissingAPI: Not a real API
s: socket.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", 1234))
data = s.recv(1024)
message: dict[str,str] = json.loads(
base64.b64decode(data).decode("utf-8"))
print("Mensaje recibido: \\n{}"
.format(json.dumps(message, indent=4)))
except:
print("Error de conexión")
finally:
print("¡Hasta luego!")
s.close()
if __name__ == "__main__":
cliente()