help using sockets, and OOP?
Jp Calderone
exarkun at divmod.com
Sun Dec 5 17:29:26 EST 2004
On Mon, 06 Dec 2004 07:45:34 +1000, Dfenestr8 <chrisdewinn0spam at yahoo.com.au> wrote:
>On Sun, 05 Dec 2004 20:17:31 +0000, Jp Calderone wrote:
>
> > Your problem doesn't seem to have anything to do with "OOP" (whatever
> > that is). Rather, you are trying to use two blocking sockets at once.
> >
> > socket.connect() and socket.recv() are both "blocking" operations by
> > default - they can take an arbitrary amount of time to return.
> > Additionally, Botling.receiveData, one of your own functions, is also
> > blocking: it will actually loop forever, never returning (until an
> > exception blows it up). So execution of your program never even
> > _gets_ to the "bert2 = ..." line. It's stuck running
> > bert1.receiveData().
>
>
> Ok, so what if I remove the while loop from the Botling class, and include
> it in the __main__ ? Might this work as a solution then?
No.
>
> if __name__ == '__main__':
> bert1 = Botling("^berty^", "#exciting", "irc.interesting.org")
> bert2=Botling("^berty^", "#interesing", "irc.exciting.org")
>
> bert1.connectBot()
> bert2.connectBot()
>
> while 1:
Try adding a simple print statement here, so you can see how often the program begins executing this while loop.
> bert1.receiveData()
And here so you can see when bert1.receiveData() has finished.
> bert2.receiveData()
And here so you can see when bert2.receiveData() has finished.
Jp
More information about the Python-list
mailing list