Threads and sockets
Ulrich Eckhardt
ulrich.eckhardt at dominolaser.com
Mon Aug 13 03:15:53 EDT 2012
Am 10.08.2012 15:01, schrieb loial:
> I am writing an application to send data to a printer port(9100) and
> then recieve PJL responses back on that port. Because of the way PJL
> works I have to do both in the same process(script).
If I understand that right, you are opening a TCP connection, so
obviously this must be done in the same process, regardless of what PJL
(whatever that exactly is) does.
> At the moment I do not start to read responses until the data has
> been sent to the printer. However it seems I am missing some
> responses from the printer whilst sending the data, so I need to be
> able to do the 2 things at the same time.
Using TCP, that shouldn't happen, so I really wonder what exactly you
are doing here.
> Can I open a port once and then use 2 different threads, one to write
> to the post and one to read the responses)?
Yes, definitely, take a look at the select() function of the select
module. This basically looks like this:
(r, w, x) = select(...)
if r:
# read and handle incoming data
...
if w:
# write pending output data
...
if x:
# handle connection failure
...
If all this is not what you are doing and what you want (which I'm not
100% sure of) then please elaborate a bit what you're doing and what
kind of connection you are using.
Happy hacking!
Uli
More information about the Python-list
mailing list