Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2016, 19:26   #1
Hailov
Пользователь
 
Регистрация: 08.10.2016
Сообщений: 18
По умолчанию 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, 19:37   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Hailov Посмотреть сообщение
До этого использовал wininet, а сейчас переписал на сокетах.
А почему бы не взять библиотеку? Например libcurl.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.11.2016, 19:52   #3
Hailov
Пользователь
 
Регистрация: 08.10.2016
Сообщений: 18
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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