Sockets en Python (Conexion Directa)
Publicado: 17 Ene 2012, 06:38
Vamos a tratar esto de Sockets en Python y lo hare de forma que cubramos algo como es la conexion directa para documentar un poco
esto de python en español y tambien de malwares.
Bueno cuando utilizamos sockets lo primero que tenemos que hacer es importar el modulo para poder utilizar todas las funciones que nos brinda
Segido de esto tendremo que crear nuestro socket:
El formato es el sigiente "socket.socket(familia, tipo)"
Entonces
AF_INET - Indica que que utilizaremos el protocolo IP (IPv4)
SOCK_STREAM - Indica que es un socket de tipo TCP, si quisieramos usar UDP protocol deberiamos usar UDP SOCK_DGRAM.
Entonces tenemos nuestro socket, necesitaos decir en que puerto va a operar y lo hacemos bindenado el puerto
Bueno entonces ligamos el socket al puerto 100, recuerden no usar puertos de otras aplicaciones para evitar conflictos.
Bueno ahora tenemos que poner nuestro socket a escuchar "incoming conexions", es muy facil
El 5 representa el backlog, y este argumento que toma especifica el maximo numero de conexiones entrantes.
Entonces avisamos que esta pasando con un print
Entonce nuestro codigo quedaria asi
Bueno y con esto terminamos el server, solo hacemos un while y en cuanto se reciba una conexion
la aceptamos y obtenemos la direccion ip para despues mostrarla.
Entonces segimos con el CLIENTE:
Primeramente importamos socket y declaramos nuestro socket
Bien ahora algo un poco distinto, solo especificamos a que direcion ip va a conectar.
Nos conectamos al localhost por el puerto 100
Bien entonces nuestro codigo quedaria asi.
Donde sdata almacena lo recibido con .recv
y con el if vemo si se a desconectado de ser asi nos indica por un print que se a desconectado
y el viejo truco de no salir hasta presionar enter con un raw_input
Bueno cabe mencionar que esto es en conexon directa, y pronto ago el de conexion inversa para que tengan referencia de los dos
vale? Saludos a todos!
esto de python en español y tambien de malwares.
Bueno cuando utilizamos sockets lo primero que tenemos que hacer es importar el modulo para poder utilizar todas las funciones que nos brinda
Código: Seleccionar todo
import socket
Código: Seleccionar todo
svrSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Entonces
AF_INET - Indica que que utilizaremos el protocolo IP (IPv4)
SOCK_STREAM - Indica que es un socket de tipo TCP, si quisieramos usar UDP protocol deberiamos usar UDP SOCK_DGRAM.
Entonces tenemos nuestro socket, necesitaos decir en que puerto va a operar y lo hacemos bindenado el puerto
Código: Seleccionar todo
svrSoket.bind(("", 100))
Bueno ahora tenemos que poner nuestro socket a escuchar "incoming conexions", es muy facil
Código: Seleccionar todo
svrSocket.listen(5)
Entonces avisamos que esta pasando con un print
Código: Seleccionar todo
print "Esperando conexiones"
Código: Seleccionar todo
import socket
serverSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
severSkt.bind("",100)
severSkt.listen(5)
print "Esperando conexiones"
while 1:
clienteSocket, ipaddress = severSkt.accept()
print "Conexion entrante de %s" % ipaddress
la aceptamos y obtenemos la direccion ip para despues mostrarla.
Entonces segimos con el CLIENTE:
Primeramente importamos socket y declaramos nuestro socket
Código: Seleccionar todo
import socket
clientSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Código: Seleccionar todo
clientSkt.connect(("127.0.0.1", 100))
Bien entonces nuestro codigo quedaria asi.
Código: Seleccionar todo
import socket
clientSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSkt = connect(("127.0.0.1", 100))
while 1:
sdata = clientSkt.recv(512)
if (sdata == "Disconnected"):
print "Te haz desconectado"
raw_input("Presione "Enter" para salir...")
break
y con el if vemo si se a desconectado de ser asi nos indica por un print que se a desconectado
y el viejo truco de no salir hasta presionar enter con un raw_input
Bueno cabe mencionar que esto es en conexon directa, y pronto ago el de conexion inversa para que tengan referencia de los dos
vale? Saludos a todos!