rodrwan

Ejemplo servidor ayudantia 1

Aug 17th, 2012
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.67 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. # RECUERDEN LA IDENTACION SI IMPORTA.
  4. # NO ES LO MISMO UN TAB QUE UN ESPACIO.
  5. # OPTEN SIEMPRE POR UNO NO LOS DOS.
  6.  
  7. # biblioteca con todo lo necesario para manejar sockets
  8. import socket  
  9.  
  10. # funcion que nos permite sumar dos numeros y retornarlo como un string
  11. def suma(num, num2):
  12.     total = num + num2
  13.     return str(total)
  14.  
  15. # nueva instancia de un objeto tipo socket
  16. ss = socket.socket()
  17. # opciones especial para que el socket no quede atrapado
  18. ss.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  19. # seteamos ip y puerto que debera escuchar nuestro socket
  20. ss.bind(("localhost", 9998))
  21. # fijamos el numero maximo de peticiones por conexion
  22. # depende del sistema operativo, pero esta vez lo setearemos en 1
  23. ss.listen(1)
  24.  
  25. # Metodo de la clase socket que nos retorna una tupla con los datos de conexion del cliente
  26. sc, addr = ss.accept()
  27.  
  28. while True:
  29.     print "Esperando mensaje..."
  30.     recibido = sc.recv(1024) # almacenamos los mensajes del cliente para luego ser procesados
  31.     opt = recibido.split(" ") # procesamos la informacion enviada por el cliente
  32.     if opt[0] == "quit": # si lo que envia el cliente es quit salimos del bloque while
  33.         break
  34.     if opt[1] == "+":
  35.         sc.send(suma(int(opt[0]), int(opt[2]))) # utilizando la funcion creada anteriormente para procesar la infomacion del cliente, luego de esto enviamos el resultado al cliente
  36.    
  37. print "adios" # al salir del bloque while nos despedimos
  38.  
  39. sc.shutdown(socket.SHUT_RD | socket.SHUT_WR)    # cerramos la conexion para liberar el puerto
  40. sc.close() # cerramos la instancia del objeto cliente para liberar memoria
  41. ss.close() # cerramos la instancia del objeto servidor para liberar memoria
Advertisement
Add Comment
Please, Sign In to add comment