These URLs are interesting reading... there is some confusion I think about
datasocket buffering... I think (not sure though) there were some
significant changes in DS between LV5/6 and LV7 and maybe these changes
contribute to the confusion.
I am running two DS apps now... one is simple and in a lab. All the
computers involved are even on the same switch and no buffering is even
wanted... most recent value is all we want.
But the other app is more interesting. It is based in Alaska. I have
antennas and spectrum analyzers spread over about 500 miles. Each site
uses a laptop to talk to the analyzer and functions as a data source. The
laptops connections to the Internet are all flavors... dial-up accounts,
cable modems, lans, and dsl.
From a central location I have a controlling computer which subscribes to
all the laptops data and publishes new settings for the analyzers. I
needed to catch all (or as many as possible) of the data from the
laptops. Using a queue on the laptop (to decouple data socket and DAQ) I
can resent any data that didn't go the first time (ie datasocket
error). Then on the control side I uses datasockets buffered read.
With this I lose very few data packets. My first pass at this project I
wrote my own TCP client/server and experienced much higher loss
rates. TCP, after all, is not error free. The DS based system is new (I
am in Alaska now in fact) but should run pretty continuously over the next
months... years.. so soon I will know exactly how robust DS is. :)
Therefore I think much of the angst about buffering is probably
misdirected. BUT, I do think datasocket is missing some useful
functionality and since I am all warmed up...
1. are there any subscribers connected to the data I am publishing?
2. are there any writers connected to the data I am writing?
3. what URLs currently exist on the server?
4. statistics on data transferred to and from the server by url. (just for
fun)
the first three must exist because the datasocket server can display all of
this information on its diagnostics panel. When can we users get at it
without resorting to crazy dll calls?
If anyone here is interested in datasocket, let me know. I am happy to
share my error handling and buffering code, which seems to work pretty
well, for me at least.
George
Greg explains what DS is:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=3CB758BF.809%40austin.rr.comrnum=1prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Budp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D3CB758BF.809%2540austin.rr.com%26rnum%3D1
Discussion of DS benefits and application:
http://groups.google.com/groups?hl=enlr=ie=UTF-8oe=UTF-8threadm=50650005002E110100-1042324653000%40exchange.ni.comrnum=6prev=/groups%3Fq%3Dlabview%2B%2522data%2Bsocket%2522%2Btcp%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3D50650005002E110100-1042324653000%2540exchange.ni.com%26rnum%3D6
Using DS through a firewall:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/fcf8a1464bd2f6d686256b59007c9a6f?OpenDocument
-Kevin