Немного более длинный ответ будет: Нет, но вы обычно будете знать, так ли это, потому что он относительно четко определен.
Все сокеты блокируются, если вы явно не ioctlsocket()
их с помощью FIONBIO
или передайте их либо WSAAsyncSelect
, либо WSAEventSelect
.Последние две функции «тайно» изменяют сокет на неблокирующий.
Поскольку вы знаете, вызвали ли вы одну из этих трех функций, даже если вы не можете запросить статус, он все еще известен.Очевидное исключение - если этот сокет происходит из какой-то сторонней библиотеки, из которой вы не знаете, что именно он делал с сокетом.
Sidenote: Как ни странно, сокет может блокироваться и перекрываться одновременновремя, которое не сразу кажется интуитивным, но оно имеет смысл, потому что оно исходит из противоположных парадигм (готовность против завершения).