Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Winsock, State 
:(
    Опции темы
neic
Дата 14.6.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Вот мне интересно стало с Winsock.State.

Хочу сделать переподключение к серверу в случае обрыва связи.

У State есть 8 констат:
Код

sckClosed    Такое значение стоит при запуске программы или когда порт закрыт 
sckOpen    Порт открыт 
sckListening    Порт прослушивается 
sckConnectionPending    Ожидание связи 
sckConnecting    Подключение к хосту 
sckConnected    Связь установлена 
sckClosing    Связь закрывается... 
sckError    Ошибка


И вот я тут подумал, если связь с сервером пропадает из-за отключения от интернета Winsock поймет, что он отключен (а именно будет ли выдавать sckClosing или sckClosed, или sckError)?

Просто если он сможет все это (обрыв соединения, отключение сервера и т.д.) отслеживать, то вместо сложных конструкций, типа посылки команды серверу, потом проверка ответа сервера и т.д., можно было бы все это в одну строчку записать.
PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 14.6.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(neic @  14.6.2010,  14:25 Найти цитируемый пост)
если связь с сервером пропадает из-за отключения от интернета Winsock поймет, что он отключен (а именно будет ли выдавать sckClosing или sckClosed, или sckError)?

Нет, не поймёт. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neic
Дата 16.6.2010, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Хм...а если сделать так:
Код

On Error Resume Next
' проверка есть ли соединение с интернетом, если интернета нет, то идем на "pere_podkl:" или вообще Exit Sub
' далее такая структура
If Winsock1.State <> sckClosing or Winsock1.State <> sckError or Winsock1.State <> sckClosed then
        On Error Goto pere_podkl
               Winsock1.Send "set_data"      
else
pere_podkl:
... ' переподключение
exit sub
end if
' если попадаем сюда, значит связь работает нормально


+ такой конструкции, то что:
1) не нужно ждать ответ от сервера
2) уменьшает код и на клиенте и на сервере
3) меньше путаницы с этим переподключением.

Это сообщение отредактировал(а) neic - 16.6.2010, 20:35
PM MAIL WWW ICQ Skype   Вверх
Akina
Дата 16.6.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Да. Иного выхода не вижу.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.