Что вызывает ошибку ENOTCONN?

Это потому, что в момент socket-programming shutting() сокета у вас есть socket данные в буфере сокета, ожидающие socket-programming доставки удаленной стороне, которая socket-programming закрыла() или выключила() свой socket-programming принимающий сокет. Я не до socket конца понимаю, как работают socket-programming сокеты, я скорее новичок, и sockets мне не удалось даже найти socket файлы, в которых реализована socket-programming эта функция "выключения", но, видя, что sockets практически нет руководства socket-programming пользователя для всей той sockets работы с сокетами, которую socket я начал пробовал все возможности, пока sockets не получил ошибку в "контролируемой" среде. Это socket могло быть что-то еще, но bsd-sockets после долгих попыток я остановился socket на следующих объяснениях:

  • Если вы отправили данные после того, как удаленная сторона закрыла соединение, при shutdown() вы получите сообщение об ошибке.
  • Если вы отправили данные до того, как удаленная сторона закрыла соединение, но они не были получены() на другом конце, вы можете выполнить shutdown() один раз, при следующей попытке shutdown() вы получите сообщение об ошибке.
  • Если вы не отправляли никаких данных, вы можете завершить работу в любое время, пока удаленная сторона не отключится(); после того, как удаленная сторона выполнит shutdown(), если вы попытаетесь выполнить shutdown(), а сокет уже был shutdown(), вы получите сообщение об ошибке.

sockets

2022-10-25T00:38:37+00:00