Tutorial de sockets en Python.
Autor. Juan Francisco Benavides Nanni
Contacto. elnanni@gmail.com
Pagina. Make Me a BlogJob.
Fecha. 17/02/2006
Nivel. Intermedio.


Un hola mundo del socket??


Bueno, basta de tanta teoría, comenzemos con lo bueno.
Pues asi es, lo que haremos a continuación es como un hola mundo en los sockets, crearemos un servidor al cual nos vamos a conectar por medio de telnet.
Bueno, pues comencemos con código:

# hls.py
# Creamos un servidor al cual nos podremos conectar.
# Juan Francisco Benavides Nanni - Dracko - 17/02/2006

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("", 8000))
server.listen(1)
server.accept()

Bajar codigo.


Y ¿que es lo que estamos haciendo con esto?, pues es sencillo vamos a verlo por pasos:

# hls.py
# Creamos un servidor al cual nos podremos conectar.
# Juan Francisco Benavides Nanni - Dracko - 17/02/2006

Pues estos son los comentarios que utilizo siempre.

import socket

Importamos el modulo de los sockets.

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Creamos el socket de la familia AF_INET y del tipo SOCK_STREAM.

server.bind(("", 8000))

Le asignamos una dirección y un puerto al servidor, por medio de una tupla (add, host).

server.listen(1)

Permite al servidor aceptar conexiones.

server.accept()

Acepta una nueva conexion.

Una vez que este Script es ejecutado nos damos cuenta que lo unico que hace es que abre una terminal, uno se pregunta, y esto de que me sirve, bueno, a continuación telneteamos al servidor que acabamos de crear:

Telnet localhost 8000

El cliente (Telnet) se conectará al servidor y este se cerrará, pues solamente le dijimos que aceptara una conexón.




Eso fue un hola mundo??


Bueno, si quieren un hola mundo mejor hecho hagamos lo siguiente:

# hlsd.py
# Creamos un servidor al cual nos podremos conectar y nos da la bienvenida.
# Juan Francisco Benavides Nanni - Dracko - 17/02/2006

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("", 8000))
server.listen(5)
while 1:
    add, port = server.accept()
    add.send("hola mundo!!!")

Bajar codigo.

Lo unico nuevo aqui es esto:

server.listen(5)
while 1:
    add, port = server.accept()
    add.send("hola mundo!!!")

Lo del socket.listen(5) nadamás se refiere a que ahora es capaz de retener 5 conexiones (no se refiere al total de conexiones, si no como que al total que hay en espera) antes de rechazar alguna, despues esta lo del ciclo infinito, (while 1:) bueno, asi es, nuestro nuevo servidor estara aceptando conexiones por siempre, y cuando alguien se conecta guardara la tupla que nos regresa el server.accept() en las variables de add y port respectivamente, despues le enviará un mensaje al cliente, el hola mundo.




Anterior. Siguiente.