Your questions are independent, I think. First off, datasocket doesn't
currently buffer values. Even if no packets were ever lost, reading
from a datasocket returns its current value. No queuing takes place,
and there may have been intermediate values arriving that you did not read.
And to answer the original question, I believe that it uses UDP.
Greg McKaskle
Actually, I wasn't that confident, and was in fact wrong. Here is the
scoop straight from the author.
dstp ( aka the data socket server) : tcp
logos: udp
opc: (varies on connection settings)
So typical datasocket connection uses tcp. Again, there is no queuing
though, and you are not guaranteed to read every point written, and in
many situations where the read is simply timed, you may also read the
same value multiple times.
Greg McKaskle
We were/are using a "handshaked/buffered" datasocket to stream some
data from a real time system to a datalogging PC. After a few minutes
the datalogging PC "hangs" on the datasocket (RT system is still
filling the buffer, but datalogging PC no longer receiving packets, DS
sever running on the datalogging PC). We were wondering if our
handshake signals were being lost (ala UTP packets disappearing into
the ether). Since thats not the case, we will investigate our
"packets too big" theory as it seems to coincide with our buffer
getting big (we flush and send the whole buffer each time the we get
an "ack" from the datalogging PC).
Thanks for your help, Greg.