Problemas con sockets

Marcos Sánchez Provencio rapto en arrakis.es
Mar Feb 25 20:32:01 CET 2003


Sacado de 
http://squirl.nightmare.com/medusa/async_sockets.html
(en inglipitinglis)


Hay que abrir el zócalo (socket) en asíncrono y atender eventos. Por lo
visto también vale para ficheros. Lo que no me queda claro es cuándo
para el invento.

import socket
import asyncore
import string

class finger_client (asyncore.dispatcher):
    def __init__ (self, account, done_fun, long=1):
        self.name, self.host = tuple(string.split (account, '@'))
        self.done_fun = done_fun
        self.data = ''
        self.long = long
#####################
        self.create_socket (socket.AF_INET, socket.SOCK_STREAM)
        asyncore.dispatcher.__init__ (self)
        self.connect ((host, 79))
#####################
    # once connected, send the account name
    def handle_connect (self):
        self.log ('connected')
        if self.long:
            # this requests 'long' output.
            self.send ('/w %s\r\n' % self.name)
        else:
            self.send ('%s\r\n' % self.name)
    # collect some more finger server output.
#####################
    def handle_read (self):
#####################
        more = self.recv(512)
        if not more:
            self.handle_close()
        self.data = self.data + more
    # the other side closed, we're done.
    def handle_close (self):
        print ''
        self.done_fun (self.data)
        self.close()

f = finger_client (who, demo_done_fun, long=0)
#####################
asyncore.loop()
#####################


El mar, 25-02-2003 a las 22:33, Fernando Rubio Dealbert escribió:
> Hola, es la primera vez que escribo en la lista y seguramente para
> algunos sea algo elemtal:
> 
> Tengo un problema con los sockets, mas de los propios sockets que de
> python, me gustaria sabes como puedo leer de un socket hasta que este se
> vacie, he probado con un while pero en cuanto se vacia este el script se
> queda parado en la orden de leer del socket, supongo q esperando a leer
> algo.
> 
> Ojala me podais ayudar, ale un saludo
> ----
> 

> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje esta firmada digitalmente
URL: <http://mail.python.org/pipermail/python-es/attachments/20030225/5f8c2e07/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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