sinpeople Messages: 29 Registered: October 2020 Location: Singapore
Promising Member
Hi folks,
I zoomed in to the case in which udp data sent from win10 sdk is not properly handled by Urr.
I did the following to isolate the problem.
A) send and receive udp data by using win10 sdk for both send and receive. (No data missing)
B) send and receive udp data by using Urr protocol call for both send and receive (No data missing)
C) send udp from win10 sdk to Urr receive (First 20 characters are missing)
I cannot tell what's the difference that caused the failure of cross-platform handling to receive UDP data from Win10 sdk. I have attached all my relevant source code here. I deleted most of those irrelevant portions and it can be compiled.
I looked into the Urr server.cpp and I found a 20 in the source code for handling the receiving data in the buffer. But I am such a newbie that I cannot understand what it is trying to do there.
Thank you very much for looking into this issue. Please advise how I can make change to correctly get data sent from win10 sdk. Though I have the win10 sdk sample code here, I prefer solve the problem at U++ side because U++ is the platform I choose to do my work.
Hope I have provided sufficient into and all source code are runnable at your side.
Best Regards
David WANG
P.S. I also tried to send data from U++ Urr and receive it by win10 sdk program. Win10 sdk program crashed immediately after I launch the sending program.
Win10 SDK is UDP protocol example. UDP protocol itself has some limitiations.
URR is (experimental) protocol based on UDP that adds some bookkeeping data to UDP in an attempt to "fix" these limitation. That is why there are data missing when you recieve UDP datagram - URR interprets the beginning as header.
Frankly, it is low importance project, that is why it is not in "canonical" U++ (uppsrc). I have uploaded it into bazaar because I have it developed for some project that was later abandoned, it works, it is tested, but has limited utility, unless you hit the same usage scenario (single server that has to process thousands of requests per second - HTTP is too slow for that).
If you desperately need UDP in U++, well, it is really trivial and you can cut those lines of code from URR.