waiting on tcp ports
[1/3] from: mlo::info::fundp::ac::be at: 22-May-2004 16:40
Hi all,
I have a problem.
I execute this code:
port1: open/lines/direct tcp://:4321
port2: open/lines/direct tcp://:8989
data: make string! 1000
ready: wait/all [port1 port2 10]
if ready [
probe read-io ready data 1000
]
to listen on multiple ports.
I observe the following error:
** Script Error: read-io expected port argument of type: port
** Near: probe read-io ready data 1000
How can I read the data when listening on two or more ports?
(the same error with dispatch)
Thanx,
Miguel Lopez
[2/3] from: antonr:lexicon at: 23-May-2004 1:39
You are assuming ready is one of the two
ports, however, wait can return none! (when
you get a 10 second timeout).
So check that ready is really a port, like this:
if port? ready [ ... ]
Anton.
[3/3] from: g:santilli:tiscalinet:it at: 23-May-2004 11:39
Hi Miguel,
On Saturday, May 22, 2004, 4:40:17 PM, you wrote:
ML> ready: wait/all [port1 port2 10]
Since you are using /ALL, READY can be a block with both ports in
it. So either you should remove the /ALL refinement (so that at
most one port will be returned each time), of you should read from
all ports returned.
BTW, I'd recommend not using READ-IO unless really necessary (that
is, unless you are using async-modes). Use COPY instead.
Regards,
Gabriele.
--
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amiga Group Italia sez. L'Aquila --- SOON: http://www.rebol.it/