[Python-es] TCP IP Cliente Servidor

#Mike - michael.ibarra en gmail.com
Mie Abr 6 17:19:54 CEST 2011


El día 6 de abril de 2011 09:55, Juan Marcelo Leiva Sandoval
<chelitoleiva en gmail.com> escribió:
> Hola integrantes de la Lista, bueno estoy trabajando en un Cliente
> Servidor TCP IP, la idea es levantar el servidor con una IP en mi caso
> es la 192.168.1.100 y puerto 9998 (Puede ser cualquier IP) y el
> Cliente debe encontrar la IP del servidor en un rango de IP y el
> puerto es predeterminado osea el 9998.
>
> En Este caso el Cliente empieza con la IP 192.168.1.98 al no encontrar
> la IP sumaria 1 numero a la ultima tupla de la ip osea al 98 le suma 1
> e intentaría conectarse a un servidor con una IP 192.168.1.99 y eso
> debería hacerlo hasta que llegue a la IP del Servidor que en este caso
> es 192.168.1.100.
>
> El problema es que se cae en el primer intento y no vuelve al ciclo
> para sumar e intentar con otra IP adjunto código del Cliente y
> Servidor.

> ==================================================================
>
> Cliente TCP IP:
>
> #!/usr/bin/env python
> # -*- coding: utf-8 -*-
>
> #+----------------------------------+
> #| Client TCP/IP                    |
> #+----------------------------------+
> import socket
>
> s = socket.socket()
>
> IP  = '192.168.1.'
> IP2 = 98
>
> HOST = IP + str(IP2)
> PUERTO = 9998
>
> print "Conectando a: " + HOST
>
> salir = 1
>
> while salir != 0:
>
>        if (s.connect((HOST, PUERTO)) == False) and (int(IP2)<199):
>                print "No se pudo conectar con el Servidor.. :("
>                print "Buscando Otra IP"
>                IP2 = int(IP2) + 1
>                HOST = IP + str(IP2)
>                print "Probando con la IP: " + HOST
>        else:
>                print "Estamos conectado con un servidor :P"
>                print "La IP del Servidor es: " + HOST
>
>                while True:
>                        s.connect((HOST, PUERTO))
>                        mensaje = raw_input("Mensaje a enviar: ")
>                        s.send(mensaje)
>
>                        if mensaje == "salir":
>                                salir = 0;
>                                break
>
> print "Bye Bye... :)"
>
> s.close()

El socket se queda abierto en el while, cierralo antes de abrir otra conexion.
-- 
Michael Ibarra


Más información sobre la lista de distribución Python-es