![]() |
|
Модераторы: Akina |
![]()
|
|
| manson |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Краткое описание:
На сервере имеется массив винсоков. Первый елемент массива всегда активен, так как отслеживыет новые запросы на соединения. На стороне сервера:
На стороне клиента:
Описание проблемы: Запускаю сервер. Подключается клиент №1 - все нормально, связь с сервером установлена. Затем удачно подключается клиент №2, в ходе чего, почему то отключается №1. Если отключить №2, то №1 снова восстанавливает связь с сервером сам. Таким образом последний подключившийся глушит связь всех предыдущих, пока сам находица в работе. |
||||||
|
|||||||
| neic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Попробуй записать это в глобальную переменную.
Ещё можно попробовать давать клиенту не порт 1777, а порт 1778. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
У тебя пересечение по портам, winsock видимо не умеет это обрабатывать...
Попробуй испольбзовать нулевой экземпляр для получения параметров соединения, в которых передавать номер порта для установления рабочего коннекта, а саму работу вести на порте, отличном от 1777... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| neic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Akina, как раз то что я писал выше =)
Тут наверн как ICQ делает, все подключаются к 5190, а при подключении он выдаёт адрес и порт куда коннектится. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Во-первых, ICQ выдает только адрес, а порт как был, так и остается 5190 или что ты поставишь в настройках (у меня 443 выставлен, например). Во-вторых, я говорю немного о другом, всё-таки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| XOXOJI |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 20.9.2008 Репутация: 2 Всего: 2 |
поступить лучше так...
кидаю кусок кода из своей проги пояснения... max_online-количество пользователей, которые были когда либо подключены за период работы проги (она глобальная!!!)
Это сообщение отредактировал(а) XOXOJI - 14.11.2008, 11:11 |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Акина, я примерно понел. Клиент посылает запрос на соединение. На сервере его принемает нулевой елемент массива и в ответ отправляет свободный порт. Получается клиент должен повторно реконектица когда получает инфу с новым портом. Я правильно понел?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Совершенно верно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Акина, я знаю как єто реализовать на стороне клиента. Но вот на стороне сервера возникают непонятки с последовательностью обработки запросов. Как сервер будет различать, пришол ли это первый запрос или запрос уже на соединение по новому порту? Подскажите, пожалуйста, как дополнить мой вышезазначеный код со стороны сервера. Заранее спасибо!
Это сообщение отредактировал(а) manson - 14.11.2008, 14:37 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А зачем ему это? Пришел запрос на соединение - сервер загружает экземпляр винсока на новый порт и сообщает его клиенту (или сообщает, что пока свободных портов нет, можно курить)... если винсок в течение заданного времени (скажем 5 минут или там полчаса) не получил ни одного запроса, или получил сигнал о завершении сеанса - он самоликвидируется. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
А да, точно! Спасибо за помощь
|
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Блин, всеравно не выходит
сервер загружает экземпляр винсока на новый порт
Где ошибка? |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
И вообще какая разница между LocalPort и RemotePort?
|
|||
|
||||
| neic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Отредактировано читай ниже
Это сообщение отредактировал(а) neic - 14.11.2008, 23:26 |
|||
|
||||
| neic |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Такс =) ТЫ меня заинтриговал и я сам решил написать сервер-клиент
Вот код сервера:
вот код клиента:
Это сообщение отредактировал(а) neic - 14.11.2008, 23:30 |
||||
|
|||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |