Dev - C++ - n

 
Vista:

n

Publicado por n (1 intervención) el 27/03/2023 16:47:22
# Importar bibliotecas para comunicación en red y concurrencia...

enchufe de importación
importar hilos
importar constantes

# Definiendo un objeto socket...
server_socket = enchufe . zócalo ( zócalo . AF_INET , zócalo . SOCK_STREAM )
dirección_servidor = constantes . SERVIDOR_IP

def principal ():
imprimir ( "***********************************" )
imprimir ( "El servidor se está ejecutando..." )
imprimir ( "Dir IP:" , dirección_servidor )
imprimir ( "Puerto:" , constantes . PUERTO )
ejecución_servidor ()

# Manejador para administrar conexiones de clientes entrantes...

def handler_client_connection ( client_connection , client_address ):
print ( f'La nueva conexión entrante proviene de: { dirección_cliente [ 0 ] } : { dirección_cliente [ 1 ] } ' )
is_connected = Verdadero
mientras está_conectado :
datos_recibidos = conexión_cliente . recv ( constantes . RECV_BUFFER_SIZE )
cadena_remota = str ( datos_recibidos . decodificar ( constantes . FORMATO_ENCONDICION ))
comando_remoto = cadena_remota . dividir ()
comando = comando_remoto [ 0 ]
imprimir ( f'Datos recibidos de: { dirección_cliente [ 0 ] } : { dirección_cliente [ 1 ] } ' )
imprimir ( comando )

if ( comando == constantes . HELO ):
respuesta = '100 OK \n '
conexión_cliente . sendall ( respuesta . codificar ( constantes . ENCONDING_FORMAT ))
elif ( comando == constantes . SALIR ):
respuesta = '200 ADIÓS \n '
conexión_cliente . sendall ( respuesta . codificar ( constantes . ENCONDING_FORMAT ))
is_connected = Falso
elif ( comando == constantes . DATOS ):
respuesta = "300 DRCV \n "
conexión_cliente . sendall ( respuesta . codificar ( constantes . ENCONDING_FORMAT ))
más :
respuesta = '400 BCMD \n \r Comando-Descripción: Comando incorrecto \n \r '
conexión_cliente . sendall ( respuesta . codificar ( constantes . ENCONDING_FORMAT ))

print ( f'Ahora, el cliente { dirección_cliente [ 0 ] } : { dirección_cliente [ 1 ] } está desconectado...' )
conexión_cliente . cerrar ()

#Función para iniciar el proceso del servidor...
def ejecución_servidor ():
tuple_connection = ( dirección_servidor , constantes . PUERTO )
servidor_socket . enlazar ( tuple_conexión )
servidor_socket . setsockopt ( socket . SOL_SOCKET , socket . SO_REUSEADDR , 1 )
print ( 'El socket está vinculado a la dirección y al puerto...' )
servidor_socket . escuchar ( 5 )
print ( 'El socket está escuchando...' )
mientras que es cierto :
conexión_cliente , dirección_cliente = socket_servidor . aceptar ()
subproceso_cliente = enhebrado . Subproceso ( destino = controlador_conexión_cliente , argumentos = ( conexión_cliente , dirección_cliente ))
hilo_cliente . empezar ()
print ( 'El socket está cerrado...' )
servidor_socket . cerrar ()

si __nombre__ == "__principal__" :
principal ()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder