Pocket PC Networking >> UDP socket sendto latency

by QVBl » Thu, 10 Mar 2005 18:43:10 GMT

Hello,
I'm developing a real-time app and I need to use UDP sockets in order to
transmit the information. I've found that the "sendto" function takes a long
time (around 15 ms). I've tryied to configure the socket as non-blocking and
to activate the flag DONTROUTE to see if I could accelerate the execution,
but it did nothing in both cases. I also thought about deactivating de UDP
checksum, but I found it is not possible in Windows CE.
I'm using a WiFi 802.11b card as network interface.

Does anyone have an idea of how to reduce the time-cost of the "sendto"
function?


Thanks in advance.


Similar Threads

1. UDP socket && sendto && EPERM

2. one UDP socket vs many distributed UDP sockets?

Hi,

Which is better in performance, the server with one UDP host socket or many 
distributed host sockets in a computer which exchanges many UDP packets with 
many other client computers across LAN or internet? I think recvfrom() for a 
socket can identify which client sent a packet by retrieving address 
parameter from recvfrom() and some footprint data in the packet we define.

We assume the server runs in Windows 2003 Server.

Please reply. Thanks in advance.

Hyun-jik Bae 


3. UDP sendto buffering problem - Pocket PC Networking

4. How to receive UDP and ICMP packet using one UDP socket, (Path MTUD)

Dear All,

Can we configure one socket to receive two different protocols packet.
Like how can we made a UDP socket to receive udp as well as icmp
messages.

Actually I am implementing Path MTUD, so for that I sent some udp
probs to destination host, now I want that the same socket at client
side must be able to receive both udp response and icmp error
messages(like host unreachable, port unreachable etc).

Another approach is that, we will use two sockets for both source and 
destination, form source we will send udp probs(through udp socket)
while at destination host, after receiving that prob(through udp
socket), application will make an icmp packet and sent it back to the
source host (using ICMP socket). And here at source host, that message
and other icmp error messages will be received by icmp socket.

But this approch dosen't look efficient to me, what u people say? If
Any one has another approch plz let me know.

Eagerly waiting for some +ve pings.

5. application to receive ethernet|IP|UDP a ethernet|ppp|IP|UDP packages over socket

6. Socket API specifics (was Real-Time UDP non-blocking sockets in Linux)

On Fri, 13 Feb 2004 19:08:42 +0000, Rick Jones wrote:

> I'm not sure I agree that a sendto() should block waiting for ARP
> resultion, but then I'm not completely one with the tao of linux :)
> Why do you believe that a sendto() should block for the duration of
> ARP resolution?

By analogy with send() on a TCP socket, which blocks until (the sent
part of) the message was acknowledged by the recieving host.  That by
definition includes any resolution delays for intermediate protocols.  It
would be consistent for sendto() to behave as close to the same as
possible.

-- 
Some say the Wired doesn't have political borders like the real world,
but there are far too many nonsense-spouting anarchists or idiots who
think that pranks are a revolution. 

7. RAW Sockets vs TCP/UDP sockets

8. Receiving multiple UDP packets at once / UDP socket hangs

Hi, 

is it possible to receive multiple UDP packets with a single WSARecvFrom 
function call ? 
We want to reduce the cpu load, by decreasing the context switches and we 
tried to pass multiple receive buffers to WSARecvFrom, but we only receive 
the UDP packets consecutively one by one and only one of our multiple receive 
buffers is filled. If the sender sends multiple UDP packets at once, the 
WSARecv call will return with all of the (I suppose fragmented) packets in a 
single call. 
The only possibility to return multiple UDP packets (from a single sender) I 
see is to write a TDI / WSK driver, caching the UDP packets. Or is there any 
user mode Win32 function I've overseen ? 

We would use fragmented UDP packets, but somehow Windows locks the UDP 
socket after some time receiving the fragmented UDP packets from multiple 
senders and we don't know why ? Does anybody know ? 

Thank you in advance,
Andre