Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
7 / 7 / 8
Регистрация: 19.06.2016
Сообщений: 134

Функция connect зависает

26.09.2018, 12:51. Показов 2825. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте, пишу программу ради обучения.
Суть такова: Нужно подключиться по https протоколу. Использование openSSL исключено, т.к. все ради обучения.
Проблема: Функция connect зависает и потом вылетает по timeout.

Как я понимаю прежде чем использовать SSL, нужно сделать TCP-handshake, что по сути и делает функция connect.

Вопрос: Как исправить код, чтобы установилось соединение?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
using namespace std;
 
int main()
{
   int sock = socket(AF_INET, SOCK_STREAM, 0);
   if (sock == 0) {
       cerr << "Error to create socket" << endl;
       return -1;
   }
   
   struct sockaddr_in addr;
   memset(&addr,0,sizeof(addr));
   addr.sin_family = AF_INET;
   addr.sin_addr.s_addr = inet_addr("87.240.129.177");
   addr.sin_port = htons(443);
   
   
   cout << "To Connecting... " << "87.240.129.177" << endl;
   if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
       cerr << "Error to connect" << endl;
       return -1;
   }
   cout << "Good connection" << endl;
   return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2018, 12:51
Ответы с готовыми решениями:

socket connect зависает
Добрый день. При вызове connect прога зависает. Вот код: bool ConnectionManager::ConnectSocket(int ID) { char buffer; string...

Не работает функция connect()
Добрый день! Пытаюсь разобраться с программированием сокетов. Вот нашел в инете пример, но почему то в нем функция connect() выдает...

FTP , зависает на connect
Доброго дня ! Создаю коннект с FTP, на одном из серверов зависает на создании коннекта FTPClient ftpClient = new FTPClient(); ...

5
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
26.09.2018, 19:04
Единственная ошибка, которую вижу if (sock == 0), а так должно работать. Попробуй с другим сервером, проверь настойки файрвола, посмотри снифером что происходит в момент попытки конекта.
Цитата Сообщение от DARKPALADIN Посмотреть сообщение
Использование openSSL исключено, т.к. все ради обучения.
В смысле задача написать всю криптографию с нуля???
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
28.09.2018, 12:25
Цитата Сообщение от prik Посмотреть сообщение
Единственная ошибка, которую вижу if (sock == 0)
и в чём ошибка?
Цитата Сообщение от DARKPALADIN Посмотреть сообщение
Функция connect зависает и потом вылетает по timeout.
значит удалённая сторона не принимает соединение.
возможно, что не туда коннектитесь.
0
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
28.09.2018, 13:09
Цитата Сообщение от GbaLog- Посмотреть сообщение
и в чём ошибка?
при ошибке connect() вернет -1, а 0 это валидный дескриптор (stdin покрайней мере на всех POSIX системах).

Добавлено через 27 минут
up socket() а не connect() конечно
0
7 / 7 / 8
Регистрация: 19.06.2016
Сообщений: 134
17.10.2018, 16:02  [ТС]
Отвечаю поздно, но делал в онлайн компиляторе, а он не отправлял запросы. Хз... Почему.
0
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
19.10.2018, 09:57
Там жесткая песочница обычно, а то вдруг вы через них что-то плохое сделать удумаете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2018, 09:57
Помогаю со студенческими работами здесь

Как боротся с вирусом a-connect(i-connect,z-connect)
Итак расскажу что за вирус... Этот вирус создает новое подключение VPN a-connect и через 1-2 минуты отключается интернет. Еще создает EXE...

Лямбда-функция в connect
Добрый день. Хочу отловить событие таймера в лямбде. как правильно передать туда event таймера? Заранее спасибо. Приведенный код не...

Функция connect и аргументы слота в этой команде (таймер)
Можно ли как-то указать аргументы в функцию которая вызывается после истечении таймера?Не спрашивайте почему if ,а не for. При нажатии...

Perl + MySQL = ошибка DBI connect(dbname=mysql; host=localhost',''...) failed: Couldnt connect to
С перлом беда какая-то, третий день мучаюсь и ничего не получается... хелп!!!. use dbi; $dbh =...

Could not connect: Can't connect to MySQL server
Здраствуйте. Очень прошу Вашей помощи. Уже не знаю что делать, ужас просто какой то. Раньше все работало нормально, а сейчас что то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru