Bueno aqui sigo en la tarea de publicar algo cada semana, esta vez comparto con ustedes el codigo fuente de un Socket…
Pero que es un socket, es simplemente un software que nos permite recibir datos por medio de internet…, es muy util para las diferentes aplicaciones que necesiten comunicar por medio de internet, para mas informacion http://es.wikipedia.org/wiki/Socket_de_Internet, el código esta desarrollado en Python 2.x, para la versión 3.x no lo he ensayado…..
ya les dire mas en detalle en otra entrada porque python.., el codigo queda bajo la licencia GPL y todo lo que esta implica la mas reciente,Sin mas el Codigo:
# -*- coding: cp1252 -*-
# importaci�n de las librer�as necesarias
#Licencia GPL
#Author: Allan Galindo
import socket
import select
from decimal import *
import time
import thread
def accept_new_connection():
# funci�n que acepta nueva conexi�n
try:
global server # utiliza la variable global server
global desc # utiliza la variable global desc
newsock, (remhost, remport) = server.accept()
#acepta una conexion, retornando el socket nuevo,
#la direcci�n del cliente y el puerto
server.settimeout(.1)
# establece el tiempo de espera, en este caso 100 milisegundos
print "Se ha conectado %s:%s" % (str(remhost), str(remport))
newsock.send("OK\r") # env�a un OK al cliente
desc.append(newsock) # guarda la conexion remota
except:
pass
def get_msg(sock):
try:
msg = sock.recv(1024) # datos recibidos con un buffer de longitud 1024
if msg != '' :
print 'msg: %s'%(msg)
sock.settimeout(.3) # tiempo de espera del socket
except:
pass
def inicio(sleeptime,*args):
while 1:
accept_new_connection() # llama a la funci�n
# select.select espera a que el socket esta listo para leer
(sread, swrite, sexc) = select.select(desc, [], [])
for sock in sread: # recorre el resultado en sread
if sock != server: # si el socket es diferente al del servidor
get_msg(sock)# llama a la funci�n para obtener el car�cter recibido
time.sleep(sleeptime) # duerme el hilo durante el tiempo especificado
#Definici�n de las variables globales
global server
print 'Servidor TCP'
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Definici�n del socket a utilizar
server.bind(("", 8000))
# puerto por el cual queda establecido el servidor
server.listen(30)
# cantidad de conexiones simultaneas que acepta
global desc
desc = [server]
# se llaman la funcion para que el servidor se ejecute por medio de hilos
thread.start_new_thread(inicio,(0.1,))
while 1:pass # ciclo infinito
simplemente se ejecuta este en script, y en Windows o en Linux simplemente en la consola ejecutan:
telnet localhost 8000
si el computador esta conectado a la IP publica, puede acceder desde otro PC por medio de esta IP publica
telnet x.x.x.x 8000
si el computador esta conectado a la red LAN de su empresa o de su casa pueden acceder por medio de la IP privada, y desde otro PC en la misma red LAN puede acceder a este
telnet 192.168.1.22 8000
Disfrutenlo……