Server
import socket
import sys
SALDO = 50000
HOST = '127.0.0.1' # Se configura la direccion del servidor
PORT = 65432 # se configura el puerto
NUMCTA = "2787782"
msgresp = "Error en la transaccion consulte a la entidad bancaria"
while True:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
while True:
data = conn.recv(1024) #queda en escucha
if not data:
break
msgdec = data.decode() # se recibe y se decodifican los datos
#verifica el numero de cuenta
if msgdec[1:8] == NUMCTA:
# se hacen los procedimientos dependiendo la seleccion del cliente
if msgdec[0:1] == "1": #caso consulta de saldo
msgresp = "Su saldo actual es de $" + str(SALDO) + " Pesos"
print("El cliente "+msgdec[1:8]+" tiene un saldo de $" + str(SALDO) + " Pesos")
if msgdec[0:1] == "2": #caso retiro de dinero
valret = int(msgdec[8:len(msgdec)])
if SALDO > valret:
SALDO = SALDO-valret
msgresp = "Retire su dinero, su nuevo saldo es $" + str(SALDO) + " Pesos"
print("El cliente "+msgdec[1:8]+" tiene un saldo de $" + str(SALDO) + " Pesos")
else:
msgresp = "Saldo insuficiente intente un valor menor"
if msgdec[0:1] == "3": #caso consignacion
valdep = int(msgdec[8:len(msgdec)])
SALDO = SALDO + valdep
msgresp = "Deposite su dinero, su nuevo saldo es $" + str(SALDO) + " Pesos"
print("El cliente "+msgdec[1:8]+" tiene un saldo de $" + str(SALDO) + " Pesos")
if msgdec[0:1] == "4": #caso Salir
msgresp = "Gracias por usar nuestros serivicos"
sys.exit()
else:
msgresp ="Numero de cuenta invalido"
msgrespcod = msgresp.encode() #se codifica la respuesta al cajero
conn.sendall(msgrespcod) #se envia la respuesta al cajero
Client
import socket
import sys
HOST = '127.0.0.1' # se configura la direccion del servidor
PORT = 65432 # se configura el puerto del servidor
def EnvServ(msg):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
msgcod = msg.encode() # se codifica el mensaje
s.sendall(msgcod) # se envia el mensaje
data = s.recv(1024)
# Se recibe la respuesta del banco
msgdev = data.decode()
print (msgdev)
while True:
# Mensaje de Bienvenida e identifica al idcliente
print ("\n" * 5)
print ("**** Bienvenido al banco XYZ ****\nDigite su numero de cuenta para comenzar")
idcliente=input()
#Mensaje con las opciones
print ('Seleccione la operacion a realizar\n1. Consulta de saldo\n2. Retirar\n3. Consignar\n4. Salir')
sel=input()
if sel == "4":
EnvServ(sel + idcliente)
sys.exit()
if sel == "1":
EnvServ(sel + idcliente) #envio de datos donde el primer digito es
#el tipo de transaccion y el resto el id del usr
else:
valortrans=input("Digite el valor $")
EnvServ(sel + idcliente + valortrans)
Download the full source code Here.