Увеличение asio синхронная запись не блокирует

Я написал приложение, которое отправляет информацию через сокет, используя соединение TCP. По нескольким причинам я использую блокировку вызовов, но я заметил, что boost::asio::write() Метод не блокируется, когда другая машина (принимающая данные) отключается. Это также не вызывает ошибку.

Это ожидаемое поведение?

0

Решение

Запись в сокет блокируется, когда в буфере нет места, иначе она вернется, как только данные будут в буфере для отправки, а не до тех пор, пока данные не будут доставлены получателю. Также сетевой стек может не обнаружить, что другая сторона отключена немедленно, поэтому вы можете видеть или не видеть код ошибки при записи. Так что да, это ожидаемое поведение.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]