![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| GShadrin |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 20.7.2009 Где: Екатеринбург Репутация: нет Всего: нет |
Здравствуйте.
Столкнулся с такой проблемой: Есть программа клиент работающая по незащищенному соединению. Возникла необходимость прикрутить режим работы по ssl. Использую модуль IO::Socket::SSL. При добавлении режима в программу возникли проблемы. Перед добавлением кода в программу мной был написал маленький скрипт для проверки работы модуля:
Этот код рабочий и имеет некоторое сходство со структурой программы клиента. Клиент имеет следующую структуру: В главном файле программы пользователю предлагается выбрать режим (с ssl или без) в некоторую переменную сохраняется идентификатор режима. Имеются два модуля для работы с сетью (по ssl и без). В каждом методы подключиться, отправить команду на сервер, считать ответ сервера (одну строку). При любом обращении к сети дергается промежуточный модуль в него передаются параметры для ф-ий этих модулей и режим работы - модуль в зависимости от режима вызывает соответствующую ф-ию из нужного модуля и вернувшийся ответ передает главному скрипту. После построения такой структуры в старом режиме, без ссл, все работает отлично. По ссл - происходит подключение но при попытке считать строку после команды приходит пустая строка. Важно, что подключение и отправка/получение происходят в разных функциях главного скрипта. Функция подключения вызывает подключение в промежуточном модуле и получает ОПИСАТЕЛЬ СОКЕТА - который является ГЛОБАЛЬНОЙ переменной. Подключение происходит следующим образом:
При подключении без ссл - все отлично работает при подключении c ссл получает пустые строки в ответ. Мной замечено: что если обращаться к серверу из той же функции где происходит подключение в главном скрипте ответы приходят. Почему? Ведь в описанном мною в начале скрипте происходит тоже самое , но все работает. Ведь без ссл происходит тоже самое - только используется другой модуль для работы в сети и сокет не является объектом. Как так? Может кто то знает с чем это связано. Возможно я не очень хорошо описал проблему. Это сообщение отредактировал(а) GShadrin - 17.11.2009, 14:46 |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |