fl 4 ‘li- - ‘ n‘ iM  .  g
J Ljl ‘u  g_ _ V1

Á/ fl

‘_r L/ <_

Alejandro Cantero canteroalejandro@gmail. com
PyDayApostoles ...
o Cátedra Sistemas Distribuidos año 2014

o Necesidad

o Manejar peticiones en la arquitectura Cliente
Servidor Utilizando...
o Para realizar la tarea era necesario elegir
un lenguaje de programación para llevarlo
acabo,  el cual resulto por elecci...
o Para realizar un servidor en Python con
Sockets no es muy ‘complicado’ utilizando
dos librerías podemos utilizarlos

o L...
(connection oriented)

/  l

Enofl
Data is corrupted,  please resend. 

U D P (connectionless)

>’ V’?  iz  

/ I _ / I

No...
o En este caso se puede optar por JSON o
XML,  yo opte por JSON debido a mi
anterior experiencia en el desarrollo web
con ...
send and send and

receive — receive

functions functions
import socket
import sys

# socket TCP/ IP

sock =  socket. socket(socket. AF_IN ET, 
socket. SOCK_STREAM)

Código (Server...
El método bind() utilizado para asociar un
socket a una dirección de servidor. 

# Enlace de socket y puerto

server_addre...
El método accept() acepta ulna conexión
entrante (un cliente) y el metodo Iisten() pone
al socket en modo servidor. 

# Es...
accept() nos devuelve una conexión abierta
entre el servidor y el cliente,  junto con la
dirección del cliente.  Los datos...
while True: 
data =  connection. recv(BUFFER)
if data: 
connection. send(‘ok man’)
else: 
print ‘no hay nada’

finally: 

...
o Hash MD5

o Para que usar esto? ??

- Una estrategia para comprobar la integridad de
un archivo,  cadena de texto,  etc,...
import hashlib

h =  hashlib. md5()

archivo =  open(nombre_archivo,  'rb')
buf =  archivo. read()

archivo. close()

h. u...
host_server =  sys. argv[1]
puerto_server =  sys. argv[2]
nombre_archivo =  sys. argv[3]

s =  socket. socket(socket. AF_I...
¿Preguntas?
Próxima SlideShare
Cargando en…5
×

Python una experiencia academica

262 visualizaciones

Publicado el

Presentación en la PyDayApostoles 2015.
Cliente/Servidor en Python.
MD5. Paso de Archivos.
Protocolos TCP y UDP.

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
262
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Python una experiencia academica

  1. 1. fl 4 ‘li- - ‘ n‘ iM . g J Ljl ‘u g_ _ V1 Á/ fl ‘_r L/ <_ Alejandro Cantero canteroalejandro@gmail. com PyDayApostoles 07-05-2015 FCEQyN - Universidad Nacional de Misiones Z ¡igpfig f l Atpm-íi-IP-F
  2. 2. o Cátedra Sistemas Distribuidos año 2014 o Necesidad o Manejar peticiones en la arquitectura Cliente Servidor Utilizando Socket y Apache Trifth El Problema en Cuestión
  3. 3. o Para realizar la tarea era necesario elegir un lenguaje de programación para llevarlo acabo, el cual resulto por elección propia el uso de este increíble lenguaje Python
  4. 4. o Para realizar un servidor en Python con Sockets no es muy ‘complicado’ utilizando dos librerías podemos utilizarlos o Librerias: o Socket o sys Ahora, ¿Como lo Hago?
  5. 5. (connection oriented) / l Enofl Data is corrupted, please resend. U D P (connectionless) >’ V’? iz / I _ / I Not all data is present. Do not resend.
  6. 6. o En este caso se puede optar por JSON o XML, yo opte por JSON debido a mi anterior experiencia en el desarrollo web con javascript que lo hizo mas ameno para manejarlo, y debido a su similaridad con el tipo de dato dicctionary de Python Serializacion de Datos
  7. 7. send and send and receive — receive functions functions
  8. 8. import socket import sys # socket TCP/ IP sock = socket. socket(socket. AF_IN ET, socket. SOCK_STREAM) Código (Server Side)
  9. 9. El método bind() utilizado para asociar un socket a una dirección de servidor. # Enlace de socket y puerto server_address = ('localhost', 5786) sock. bind(server_address) Código (Server Side)
  10. 10. El método accept() acepta ulna conexión entrante (un cliente) y el metodo Iisten() pone al socket en modo servidor. # Escuchando conexiones entrantes sock. Iisten(1) while True: # Esperando conexion connection, client_address = sock. accept() Código (Server Side)
  11. 11. accept() nos devuelve una conexión abierta entre el servidor y el cliente, junto con la dirección del cliente. Los datos de la conexión se leen con el método recv() y se transmiten con el método send() Código (Server Side)
  12. 12. while True: data = connection. recv(BUFFER) if data: connection. send(‘ok man’) else: print ‘no hay nada’ finally: # Cerrando conexion connection. close() Código (Server Side)
  13. 13. o Hash MD5 o Para que usar esto? ?? - Una estrategia para comprobar la integridad de un archivo, cadena de texto, etc, es a través de la creación de la comprobación de los hexadecimales que se obtienen con distintos métodos matemáticos ya existentes. - Utilizamos MD5 porque no es segura para la protección de contraseñas pero Ia podemos utilizar para saber si dos archivos son identicos. Código (Client Side)
  14. 14. import hashlib h = hashlib. md5() archivo = open(nombre_archivo, 'rb') buf = archivo. read() archivo. close() h. update(buf) h. hexdigest() Código (Client Side)
  15. 15. host_server = sys. argv[1] puerto_server = sys. argv[2] nombre_archivo = sys. argv[3] s = socket. socket(socket. AF_INET, socket. SOCK_STREAM) s. connect((host_server, int(puerto_server))) Código (Client Side)
  16. 16. ¿Preguntas?

×