John Que wrote:
Hello,
I wrote a simple , user space program (in "C") which opens 400
UDP sockets ; each of them sends a message.
I saw in the sniffer that many packets are not sent.
I am working with 2.4.20-8 kernel.
I am creating 400 DIFFERENT instances of socket
in the usual way : socket(AF_INET,SOCK_DGRAM,0).
I keep these in an array.
I do bind each of them to a different port.
Each of the calls to socket() and bind() returns success.
Then I call sendto().
Wach of them sends a 160 bytes buffer (the buffer_len is 160).
I see in the sniffer that only about 100 are sent (the 100 first ones).
Any reason for that ?
I of course can do sleep between the calls to sendTo () to avoid it,
but I don't want
because it is against my target (to send as quickly as possible).
What is the reason for that ? is there some kernel parameter which I
should set (through /proc or in any other way) to improve the result ?
Doing the same in Java gives full success
I think that my machine is strong enough for that (500 MB of RAM an
2.6 Mhz processor).
Did you check the return value from the sendto call to see if it
is reporting errors? You are probably overflowing a network buffer,
maybe on the ethernet interface...
Ben
Regards,
John
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Ben Greear <[EMAIL PROTECTED]>
Candela Technologies Inc http://www.candelatech.com
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html