Здравствуйте SergeyRo, 16.04.2001 06:20:30 вы писали:
>Попутно я обнаружил следующее: >Если соединение произошло нормально и затем я отключаю компьютер от локальной сети и вызываю >функцию Send, то функция OnSend вызывается с кодом ошибки 0 (нет ошибок), >но как такое может быть, данные ведь не передались !!! И как сделать так, чтобы OnSend вызывалась только >после того как данные действительно были переданы или когда истек таймаут на их передачу !!!
Дело в реализации — когда данные переданы ядру для передачи,
Winsock считает, что они уже переданы. Такая же беда творится,
например, и на Solaris — обходить можно следующим образом —
выставлять на сокете LINGER и по закрытии сокета проверять, за какое время он был закрыт,
если это время равно LINGER timeout — считать, что данные не
переданы