Используйте getsockopt (). Этот сайт содержит подробное описание использования и параметров, которые вы можете получить.
В Windows вы можете сделать:
int optlen = sizeof(int);
int optval;
getsockopt(socket, SOL_SOCKET, SO_MAX_MSG_SIZE, (int *)&optval, &optlen);
Для Linux, согласно man-странице UDP, ядро будет использовать обнаружение MTU (оно проверит, какой максимальный размер UDP-пакета находится между этим местом и пунктом назначения, и выберет его), или, если обнаружение MTU выключено, оно ' Устанавливаем максимальный размер интерфейса MTU и фрагментируем что-нибудь большее. Если вы отправляете через Ethernet, типичный MTU составляет 1500 байт.