В мире Linux ядро буферизует их для вас - я предполагаю, что мир Windows делает то же самое. Но в конечном итоге, как сказал deltreme, буфер переполнится (определенно есть предел), и есть вероятность, что данные будут отброшены без вывода сообщений.
Если вы делаете что-то более тяжелое, чем несколько миллисекунд на пакет, то вы можете рассмотреть возможность использования пула потоков для освобождения сетевого потока. То есть все, что нужно сделать вашему сетевому потоку, - это захватить пакет и выбросить его в очередь для обработки другим потоком и вернуться к прослушиванию в сети. Другой поток / потоки могут извлекать эти пакеты из очереди и обрабатывать их - приятно то, что вы даже сможете обрабатывать несколько пакетов одновременно, что экономит некоторые накладные расходы. Здесь ваша очередь будет выступать в качестве буфера, и вы сможете контролировать, насколько большим она будет, и вы можете определить собственную политику отбрасывания.