Windows смотрит на этот параметр, но он не работает так, как вы ожидаете.Когда вы устанавливаете размер этих буферов, вы фактически устанавливаете размер буферов на актуальном сетевом адаптере, с которым вы обмениваетесь данными, таким образом определяя размер пакетов, которые выходят.
ЧтоВы должны знать о Windows, есть ли между вашим кодом вызова и актуальным NIC буфер, и я не уверен, что вы можете контролировать его размер.Что произойдет, если при вызове операции Send для вашего сокета вы будете сбрасывать данные в этот сокет, и ядро Windows будет выполнять небольшие пошаговые отправки на NIC с использованием данных в буфере.
Это означает, что код на самом деле будет сообщать о том, что 2 МБ отправлено, но это просто означает, что ваши 2 МБ данных были успешно записаны во внутренний буфер, и это не означает / не гарантирует, что данные уже были отправлены.
Я работал над подобными проектами с потоковым видео и tcp-связью, и эта информация где-то доступна на форумах MSDN и в Technet, но требует некоторого действительно подробного поиска того, как все это на самом деле работает.