Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 07.11.2016, 20:26   #1
Hailov
Пользователь
 
Регистрация: 08.10.2016
Сообщений: 18
Репутация: 40
По умолчанию HTTPS handshake

Добрый день.

Пишу доступ к различным сайтам по защищенному соединению.
До этого использовал wininet, а сейчас переписал на сокетах.
После создания сокета
Код:

socket (AF_INET, SOCK_STREAM, 0)

вызываю функцию handshake в которой инициализируется SSL
через функции security.dll (AcquireCredentialsHandle, InitializeSecurityContext...) и посылается серверу.

Все работало....
Внезапно, один из сайтов перестал здороваться. Остальные отвечают как надо. На сервере проблема? Открываю через браузер. Все отлично.
Пробую свою предыдущую рабочую версию написанную на wininet - нет соединения. Может меня забанили? Меняю IP (vpn, proxy...) , без результата.

Но в браузере-то он открывается.

Параллельно с браузером включаю Fiddler.
Перестает открыватся и в браузере.
При этом фиддлер пишет ровно то, что я и так уже понял.

Цитата:
HTTP/1.1 200 Connection Established
FiddlerGateway: Direct
StartTime: 19:18:31.203
Connection: close
fiddler.network.https> HTTPS handshake (for #6) failed. System.IO.IOException Неожиданный EOF или 0 байт из транспортного потока.
Может кто-нибудь прояснить ситуацию. Чем ssl-соединение из браузера отличается от соединения через сокеты и wininet и почему открытие фиддлера блокирует соединение.
Hailov вне форума   Ответить с цитированием
Старый 07.11.2016, 20:37   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,380
Репутация: 2579

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Hailov Посмотреть сообщение
До этого использовал wininet, а сейчас переписал на сокетах.
А почему бы не взять библиотеку? Например libcurl.
Alex11223 вне форума   Ответить с цитированием
Старый 07.11.2016, 20:52   #3
Hailov
Пользователь
 
Регистрация: 08.10.2016
Сообщений: 18
Репутация: 40
По умолчанию

Как раз наоборот, хотел на уровень ниже.. чтоб так сказать, пощупать.
Мне очень критичен траффик, и пришлось отказаться от wininet из-за того что он кеширует данные. Грубо говоря, считываю первые 2 kb странички html занимающей 200 kb и обрываю считывание. А в итоге выясняется, что wininet сбуферизировал еще 14kb. И повлиять на это не вижу возможности.
Остальные высокоуровневые библиотеки будут не лучше.
Hailov вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация на httpS ProX_Alex C# (си шарп) 3 14.04.2012 15:37
Авторизация на HTTPS Robin_ Работа с сетью в Delphi 0 13.05.2010 09:20




19:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru