Безопасно ли юзать один WinSock для приёма и передачи?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Zerg1
Сообщения: 6
Зарегистрирован: 21 окт 2005, 20:45

ВБ 6 приложение, клиент. Есть в нём один винсок контрол. Обмен с сервером (моим, но написанным на сипп) идёт по UDP. То есть в клиенте на ВБ есть один винсок контрол, который используется на приём дейтаграмм, и на передачу, причём на передачу как в зависимости от действий пользователя, так и одновременно по таймеру раз в несколько секунд.
Сервер мой ведёт подробнейший лог и из него видно, что некоторые пакеты ТОЧНО отсылаются клиенту (на нужный ИП и на нужный порт), но на клиенте датаэрайвал не возникает! То есть иногда пакеты теряются! Может нельзя использовать сокет для и приёма, и передачи?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

А не возникает ли на клиенте переполнения буфера?
А сама отправка в сокет (таз она происходит и по таймеру и по событию) потокозащищенная?
Вообще для критичного обмена данными обычно реализуют какой-нибудь стандартный или изобретают свой протокол поверх TCP.
Если отсылка по таймеру используется для проверки соединения, то может проверку соединения осуществлять по одному соединению, а данные пересылать по другому? (Ну или убедиться что отправка выполняемая из разных процедур потокозащищенная)
Ответить