Socket with MFC
От: SergeyRo  
Дата: 16.04.01 12:20
Оценка:
Для осуществления всего нижеописанного я использую класс CAsyncSocket(MFC).
OS: Winnt 4.0 SP6
Среда разработки: Visual C++ 6.0 SP4

Есть программы запущенные на разных компьютерах, одно является сервером другое клиентом.
Программа клиент посылает данные программе сервер.
Создается клиентский сокет, далее он соединяется с сервером на другом компьютере
и когда вызывается функция OnConnect посылаются данные серверу,
после того как вызывается функция OnSend сокет закрывается и удаляется.
На сервере есть слушающий сокет, который получив запрос на соединение создает новый сокет
и передает ему управление посредством вызова функции Accept, далее этот новый сокет получает
данные закрывается и удаляется. Запросов на передачу данных в программе клиенте
много и есть подозрения что данные либо теряются, либо долго передаются, а это актуально т.к. система является realtime.
Возможно нужно использовать один сокет, а не плодить их при каждой передаче, но тогда необходимо оперативно
отслеживать разрыв соединения порядка 1-2 сек, а как это сделать и хватит ли пропускной способности если
предположить что за одну секунду должно передаться 300-400 запросов каждый в среднем по 50-70 байт ???
Попутно я обнаружил следующее:
Если соединение произошло нормально и затем я отключаю компьютер от локальной сети и вызываю
функцию Send, то функция OnSend вызывается с кодом ошибки 0 (нет ошибок),
но как такое может быть, данные ведь не передались !!! И как сделать так, чтобы OnSend вызывалась только
после того как данные действительно были переданы или когда истек таймаут на их передачу !!!

Сергей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.