PROGRAMACION DE SOCKETS CON PYTHON

viernes, 2 de enero de 2009


Descripción del Proyecto

¨La comunicación entre distintas entidades en una red se basa en Python en el clásico concepto de sockets. Los sockets son un concepto abstracto con el que se designa al punto final de una conexión.
¨Los programas utilizan sockets para comunicarse con otros programas, que pueden estar situados en computadoras distintas.
¨Un socket queda definido por la dirección IP de la máquina, el puerto en el que escucha, y el protocolo que utiliza.
¨Los tipos y funciones necesarios para trabajar con sockets se encuentran en Python en el módulo socket, como no podría ser de otra forma.


¨Los sockets se clasifican en sockets de lujo (socket.SOCK_STREAM) o sockets de datagramas (socket.SOCK_DGRAM) dependiendo de si el servicio utiliza TCP, que es orientado a conexión y fiable, o UDP, respectivamente.
¨Los sockets de lujo, cubren un 90% de las necesidades comunes, y también se pueden clasificar según la familia. Tenemos sockets UNIX (socket.AF_UNIX) que se crearon antes de la concepción de las redes y se basan en ficheros, sockets socket.AF_INET que son los que interesan más, sockets socket.AF_INET6 para IPv6, etc.
¨Para crear un socket se utiliza el constructor socket.socket() que puede tomar como parámetros opcionales la familia, el tipo y el protocolo.
¨Por defecto se utiliza la familia AF_INET y el tipo SOCK_STREAM.


¨Lo primero que tenemos que hacer es crear un objeto socket para el Servidor
socket_s = socket.socket()
¨Tenemos ahora que indicar en qué puerto se va a mantener a la escucha nuestro servidor utilizando el método bind. Para sockets IP, como es este caso, el argumento de bind es una tupla que contiene el host y el puerto. El host se puede dejar vacío, indicando al método que puede utilizar cualquier nombre que esté disponible.
socket_s.bind((“localhost”, 9999))

¨Por último utilizamos listen para hacer que el socket acepte conexiones entrantes y accept para comenzar a escuchar. El método listen requiere de un parámetro que indica el número de conexiones máximas que queremos aceptar; evidentemente, este valor debe ser al menos 1.
¨El método accept se mantiene a la espera de conexiones entrantes, bloqueando la ejecución hasta que llega un mensaje.
¨Cuando llega un mensaje, accept desbloquea la ejecución, devolviendo un objeto socket que representa la conexión del cliente y una tupla que contiene el host y puerto de dicha conexión.
socket_s.listen(10)
socket_c,(host_c, puerto_c) = socket_s.accept()


¨Una vez que tenemos este objeto socket podemos comunicarnos con el cliente a través suyo, mediante los métodos recv y send (o recvfrom y sendfrom en UDP) que permiten recibir o enviar mensajes respectivamente. El método send toma como parámetros los datos a enviar, mientras que el método recv toma como parámetro el número máximo de bytes a aceptar.
recibido = socket_c.recv(1024)
print “Recibido: “, recibio
socket_c.send(recibido)
¨Una vez que hemos terminado de trabajar con el socket, lo cerramos con el método close.


¨Crear un cliente es aún más sencillo. Solo tenemos que crear el objeto socket, utilizar el método connect para conectarnos al servidor y utilizar los métodos send y recv que vimos anteriormente. El argumento de connect es una tupla con host y puerto, exactamente igual que bind.
socket_c = socket.socket()
socket_c.connect((“localhost”, 9999))
socket_c.send(“hola”)
¨En el siguiente código el cliente manda al servidor cualquier mensaje que escriba el usuario y el servidor no hace más que repetir el mensaje recibido.
¨La ejecución termina cuando el usuario escribe quit.



Diagrama de Flujo







Código del script servidor:


import socket
s = socket.socket()
s.bind((“localhost”, 9999))
s.listen(1)
sc, addr = s.accept()
while True:
recibido = sc.recv(1024)
if recibido == “quit”:
break
print “Recibido:”, recibido
sc.send(recibido)
print “adios”
sc.close()
s.close()


codigo cliente

import socket
s = socket.socket()
s.connect((“localhost”, 9999))
while True:
mensaje = raw_input(“> “)
s.send(mensaje)
mensaje == “quit”:
break
print “adios”
s.close()


CONCLUSIONES Y RECOMENDACIONES

¨Python es un lenguaje de programación que a nuestro parecer todos deberíamos de conocer.
¨
¨Su sintaxis simple, clara y sencilla; el interfaz dinámico, el gestor de memoria, la gran cantidad de librerías disponibles y la potencia del lenguaje, entre otras cualidades que lo destacan, hacen que desarrollar una aplicación en Python sea sencillo, muy rápido y, lo que es más importante, divertido.
¨
¨La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los programas elaborados en Python parecen pseudocódigo.
¨
¨Por este motivo se trata además de uno de los mejores lenguajes para comenzar a programar.


¨† Algunos casos de éxito en el uso de Python son:
Google,
Yahoo,
NASA,
Industrias Light & Magic,
Distribuciones LINUX,

¨Y muchas más en las que Python cada vez representa un tanto por ciento mayor de los programas disponibles.
¨† Pero sin embargo Python no es adecuado para la programación de bajo nivel o para aplicaciones en las que el rendimiento sea crítico.
¨† Si se llega a dominar dicho lenguaje se pueden hacer infinidad de programas y estupendas cosas sin dejar de lado la gran variedad de su desempeño en la programación en 3D…

Bibliografía

PYTHON para todos - Raúl González Duque
http://www.wikipedia.com/
http://www.monografias.com/
http://www.lawebdelprogramador.com/m
http://www.mundogeek.net/
http://www.launchpadlibrarian.net/

ANEXOS...

* Presentacion Powerpoint subido a slideshare.

http://www.slideshare.net/mephistodark/sockets-en-python-por-antoni-luque-delgado-presentation-891002

* video subidoa a youtube

http://www.youtube.com/watch?v=jhGuMYBLMEs

______________________________________________

LOGO E INFORMACION EN "PROPIEDADES DE PANTALLA"

viernes, 12 de octubre de 2007

logotipo.JPG

COMO PONER UN LOGO E INFORMACION EN

"PROPIEDADES DE PANTALLA"

En algunos PCs de marca cuando abres las propiedades del sistema, aparece un logotipo y una serie de datos sobre el ensamblador del PC.
Si quieres personalizar el tuyo, haz lo siguiente:

Abre el bloc de notas y escribe:

; OEMINFO ELABORADO POR ANTHONY LUQUE DELGADO

; 05\OCTUBRE\2007

; Este archivo contiene el ID del fabricante, el modelo y la información
; de la ayuda eso se exhibe en el panel de control de sistema.
; El fabricante y el modelo se exhiben en el sistema. [general]
; El fabricante de la página es un campo requerido

[general]
;ten cuidado de no dejar ningun espacio que se arrastran después de nombre del fabricante!
Manufacturer=_____COMPUSERVE_____
Model=___SOPORTE TECNICO___
SupportURL=

[ICW]
AllOffers= 1 ; nota: AllOffers=1 especifica que la lista del MS de ISPs será exhibida si el usuario clickea a MS ICWs
Product= COMPUSERVE

; la Info de soporte tecnico es exhibido cuando el boton de “información de soporte tecnico…” es seleccionado

[Support Information]
Line1= "PARA SOPORTE TECNICO:"
Line2= "LLAMAR AL 51-323321 CEL.51-9659992"
Line3=
Line4= "O CONTACTENOS EN EL MSN"
Line5= "compuserve_web@yahoo.es"
Line6= "mephisto.dark@yahoo.es"
Line7=

Line8= "INSTALACION Y MANTENIMIENTO"
Line9= "DE SOFTWARE Y HARDWARE"
Line10= "PARA CABINAS DE INTERNET"
Line11=
Line12= "INSTALACION Y CONFIGURACION"
Line13= "DE LOCUTORIOS PUBLICOS"
Line14= "TELEFONIA VOIP & TELEFONIA FIJA Y CELULAR"
Line15=
Line16= "ATENDEMOS A PROVINCIAS - JULIACA - PUNO - PERU"

Haz click en Archivo y Guardar como, y ponle de nombre "oeminfo.ini" y guardalo en la carpeta "C:\Windows\System32",

oemlogo.JPG

Abre el editor de imagenes que uses habitualmente (paint, photoshop, paint shop pro etc...) y crea una imagen de
120 pixel de alto y 160 pixel de ancho y guardala como "oemlogo.bmp" en C:\Windows\System32" y te aparecera al lado de la informacion que metiste en "oeminfo.ini".
Para ver el resultado da al boton derecho del raton encima del icono "Mi Pc" seleciona propiedades.

VIDEO DE RED INALAMBRICA

TECNOLOGIA EMERGENTE DE REDES

domingo, 30 de septiembre de 2007

REDES INALAMBRICAS

Introducción

Llamamos una red inalámbrica a aquella que posibilita la unión de dos o más dispositivos sin la mediación de cables.

Principales ventajas:

  • Permiten la movilidad.
  • Facilitan la reubicación de las estaciones de trabajo evitando la necesidad de tirar cableado.
  • Rapidez en la instalación.
  • Menores costes de mantenimiento.

Tipos de redes inalámbricas

Podemos clasificar las redes inalámbricas en función de diversos criterios. Así, por ejemplo, una clasificación usual es por el rango de cobertura y uso:

  • WPAN (Wireless Personal Area Networs). Encajarían en esta categoría tecnologías como HomeRF, Bluetooth, ZigBee, o RFID.
  • WLAN (Wireless Local Area Networs). Tecnologías HiperLAN2 (ETSI) o Wi-Fi (serie 802.11 del IEEE).
  • WMAN (Wireless Metroppolitan Area Networs). Normalmente asociadas a tecnologías de acceso de operadores de telecomunicacines, como LMDS o Wimax.
  • WWAN (Wireless Wide Area Networs). Típicamente redes celulares de tecnología UMTS o GPRS.

Redes inalámbricas

En los últimos años las redes de área local inalámbricas (WLAN, Wireless Local Area Network) están ganando mucha popularidad, que se ve acrecentada conforme sus prestaciones aumentan y se descubren nuevas aplicaciones para ellas.

Redes

En los últimos años las redes de área local inalámbricas (WLAN, Wireless Local Area Network) están ganando mucha popularidad, que se ve acrecentada conforme sus prestaciones aumentan y se descubren nuevas aplicaciones para ellas. Las WLAN permiten a sus usuarios acceder a información y recursos en tiempo real sin necesidad de estar físicamente conectados a un determinado lugar.

Con las WLANs la red, por sí misma, es móvil y elimina la necesidad de usar cables y establece nuevas aplicaciones añadiendo flexibilidad a la red, y lo más importante incrementa la productividad y eficiencia en las empresas donde está instalada.

Un usuario dentro de una red WLAN puede transmitir y recibir voz, datos y vídeo dentro de edificios, entre
edificios o campus universitarios e inclusive sobre áreas metropolitanas a velocidades de 11 Mbit/s, o superiores.

Pero no solamente encuentran aplicación en las empresas, sino que su extensión a ambientes públicos, en áreas metropolitanas, como medio de acceso a Internet o para cubrir zonas de alta densidad de usuarios (hot spots) en las
próximas redes de tercera generación (3G) se ven como las aplicaciones de más interés durante los próximos años

Muchos de los fabricantes de ordenadores y equipos de comunicaciones como son los PDAs (Personal Digital Assistants),
módems, terminales de punto de venta y otros dispositivos están introduciendo aplicaciones soportadas en las comunicaciones inalámbricas.

Las nuevas posibilidades que ofrecen las WLANs son:

permitir una fácil incorporación de nuevos usuarios a la red, ofrecer una alternativa de bajo costo a los sistemas cableados, además de la posibilidad para acceder a cualquier base de datos o cualquier aplicación localizada dentro de la red.

Ventajas De Wlans Sobre Las Redes Fijas

Movilidad:

las redes inalámbricas proporcionan a los usuarios de una LAN acceso a la información en tiempo real en cualquier lugar dentro de la organización o el entorno público (zona limitada) en el que están desplegadas.

Simplicidad y rapidez en la instalación:

la instalación de una WLAN es rápida y fácil y elimina la necesidad de tirar cables a través de paredes y techos.

Flexibilidad en la instalación:

La tecnología inalámbrica permite a la red llegar a puntos de difícil acceso para una LAN cableada.

Costo de propiedad reducido:

Mientras que la inversión inicial requerida para una red inalámbrica puede ser más alta que el costo en hardware de una LAN, la inversión de toda la instalación y el costo durante el ciclo de vida puede ser significativamente inferior. Los beneficios a largo plazo son superiores en ambientes dinámicos que requieren acciones y movimientos frecuentes.

Escalabilidad:

los sistemas de WLAN pueden ser configurados en una variedad de topologías para satisfacer las necesidades de las instalaciones y aplicaciones específicas. Las configuraciones son muy fáciles de cambiar y además resulta muy fácil la incorporación de nuevos usuarios a la red.

Decidiendo por una WLAN

En nuestro medio nos hemos visto bombardeados por diversas opciones, unas muy complicadas, otras muy caras, otras difíciles de instalar u otras que simplemente no funcionan.

Cuando hablamos de WLAN tendremos un festín de posibilidades por lo que tener a alguien que nos respalde y podamos consultar se vuelve muy importante para la funcionalidad de nuestra red.

Si tenemos los productos adecuados, crear una red inalámbrica no es nada complicado y si tenemos el soporte correcto aún menos.

En una red típica basta con tener las tarjetas inalámbricas para las computadoras, ya sea USB, PCI o PCMCIA; los puntos de acceso (access points); y verificar que no hayan obstáculos muy grandes para logar la transmisión.

Lo más interesante que las WLAN siguen evolucionando y actualmente llegan a velocidades de 108 Mbps en el estándar 802.11g como en los productos AirPlus XtremeG de DLINK

Si usted está pensando en instalar una red inalámbrica, hágalo!, le traerá grandes ventajas y ahorro para su oficina y hogar.

REFERENCIAS:

http://www.maestrosdelweb.com/

http://www.monografias.com/

http://es.wikipedia.org/

MAPA MENTAL:

mapa1.JPG