I am using boost::asio
to do UDP
as well as TCP communication
in my Client app & Server applications. I found that I am only able to transmit data of size 65535 bytes
using UDP
as it seems to be the max packet size in UDP.
The max packet size limit is also there in TCP
which is 65535 bytes
? But I am able send chunks larger than max packet size using boost::asio::write
in TCP
& read it all fine on the client app. I see that I don't have to bother about the max packet size in TCP but in UDP I have ensure each socket.send_to
is done with a buffer smaller than max packet size
How does this work ? Is this because TCP
is stream based takes care of creating packets at the lower layer ?
Is there some way I can increase the max packet size
in UDP
?
Is it possible that some of the bytes of an UDP packet
I sent from server side could be missing when I read on client side ? If yes, then is there way only to detect the loss on client side of UDP ?