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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2013, 19:38   #21
arm9n
Пользователь
 
Регистрация: 24.07.2013
Сообщений: 19
По умолчанию

Цитата:
libcurl.dll - распаковать в %SystemDrive%\%SystemRoot%\System32
libeay32.dll - распаковать в %SystemDrive%\%SystemRoot%\System32
ssleay32.dll - распаковать в %SystemDrive%\%SystemRoot%\System32
zlib1.dll - распаковать в %SystemDrive%\%SystemRoot%\System32
Значит ли это, что скомпилированная таким образом программа при переносе на другой компьютер будет требовать наличие этих библиотек?
arm9n вне форума Ответить с цитированием
Старый 24.07.2013, 21:51   #22
Стертор
Заблокирован
 
Регистрация: 24.07.2013
Сообщений: 41
По умолчанию

Что Вы! Прилетит голубой волшебник в вертолете и принесет с собой нужные библиотеки.
Стертор вне форума Ответить с цитированием
Старый 19.11.2013, 15:45   #23
Istrafiloff
Пользователь
 
Аватар для Istrafiloff
 
Регистрация: 05.07.2011
Сообщений: 33
Вопрос А что, если

Добрый день, решил не создавать новую тему, а спросить тут. Допустим, имеем такую функцию записи в файл:
Код:
size_t write_to_file(void *ptr, size_t size, size_t nmemb, FILE *stream) {
    size_t written = fwrite(ptr, size, nmemb, stream);
    mu_error_code = MU_SUCCESS;
    return written;
}
и используем ее примерно так:
Код:
CURL *curl = curl_easy_init();
FILE *fd = fopen(full_path, "wb");
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fd);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_file);
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
// Обработаем ситуацию
}
Пусть код исполняется нормально при обычных условиях.

Так вот, допустим, что процесс записи в файл начался, и, где-то на середине записи, произошел обрыв связи. В этом случае программа просто висит (у меня провисела минут 25, пока я ее не закрыл), а файл заблокирован. Как можно узнать, что произошла такая бяка, чтобы обработать ситуацию?
Цитата:
Читайте книги. Некоторые из них специально для этого написаны
Istrafiloff вне форума Ответить с цитированием
Старый 20.11.2013, 02:12   #24
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 184
По умолчанию

Цитата:
Так вот, допустим, что процесс записи в файл начался, и, где-то на середине записи, произошел обрыв связи. В этом случае программа просто висит (у меня провисела минут 25, пока я ее не закрыл), а файл заблокирован. Как можно узнать, что произошла такая бяка, чтобы обработать ситуацию?
Вообще думаю нужно было ждать, должен был сработать обрыв по таймауту.
Avazart вне форума Ответить с цитированием
Старый 20.11.2013, 12:20   #25
Istrafiloff
Пользователь
 
Аватар для Istrafiloff
 
Регистрация: 05.07.2011
Сообщений: 33
По умолчанию

Да, действительно. Правда, по умолчанию он будет ждать вечно.
Цитата:
Читайте книги. Некоторые из них специально для этого написаны
Istrafiloff вне форума Ответить с цитированием
Старый 11.05.2018, 00:16   #26
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

Хотелось бы поинтересоваться:
пробую работать через прокси.соксы
в независимости от выбранного метода получаю ошибку:
Цитата:
Error #56 Failure when receiving data from the peer
материал беру отсюда:
Цитата:
hideip.me
без строчки curl_easy_setopt(curl_handle, CURLOPT_PROXY, "95.110.224.30:20546"); код работает
а вот код:
Код:
#include "string"
#include "stdafx.h"
#define CURL_STATICLIB
#include "curl/curl.h"
#include <locale>
#include <iostream>
#ifdef _DEBUG
# pragma comment (lib, "curl/libcurl_a_debug.lib")
#else
# pragma comment (lib, "curl/libcurl_a.lib")
#endif
#pragma warning(disable : 4996)
using namespace std;

size_t write_data(char *ptr, size_t size, size_t nmemb, FILE* data)
{
	return fwrite(ptr, size, nmemb, data);
}

int main()
{

		// Открываем файлы для заголовка и тела
		std::string body_filename = "body.html";
		FILE *body_file = fopen(body_filename.c_str(), "w");
		if (body_file == NULL)  return -1;

		std::string url = "https://whoer.net/";

		CURL *curl_handle = curl_easy_init();
		if (curl_handle)
		{
			// сохранение в файл html-страницу
			curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, body_file);//curl_handle -указатель на интерфейс
			                                                            //CURLOPT_WRITEDATA - название опции
			                                                            //body_file - параметр, который связывается с опцией, 
			                                                                          //это может быть число, указатель на функцию, 
			                                                                          //строка. Функцию можно вызывать несколько раз подряд, 
			                                                                          //задавая необходимые опции. 
			                                                                          //Все опции, по умолчанию, выключены.
			curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);
			// заголовки ответа выводим в консоль
			curl_easy_setopt(curl_handle, CURLOPT_WRITEHEADER, stdout);
			/* HTTPs  Запрос */
			curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str());
			curl_easy_setopt(curl_handle, CURLOPT_PROXY, "95.110.224.30:20546");
			// не проверять SSL сертификат
			curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0);
			// не проверять Host SSL сертификата
			curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0);

			CURLcode res = curl_easy_perform(curl_handle);
			if (res != CURLE_OK)
				std::cout << "Error #" << res << " " << curl_easy_strerror(res) << std::endl;

			curl_easy_cleanup(curl_handle);
		}

		std::cout << std::endl << "Done!";
		getchar();
		return 0;
}
SadiQ228 вне форума Ответить с цитированием
Старый 11.05.2018, 00:31   #27
SadiQ228
Пользователь
 
Регистрация: 30.10.2017
Сообщений: 66
По умолчанию

понял ошибку писать надо было вот так:
Цитата:
curl_easy_setopt(curl_handle, CURLOPT_PROXY, "http://79.106.115.246:8080");

Последний раз редактировалось SadiQ228; 11.05.2018 в 00:34.
SadiQ228 вне форума Ответить с цитированием
Старый 16.08.2018, 23:09   #28
_Gremlin_
Пользователь
 
Регистрация: 01.08.2016
Сообщений: 13
По умолчанию

Не работают ссылки для загрузки курла не с офф сайта http://my.guardpuppy.com/libcurl-7.1...zlib-1.2.3.zip можете перезалить?
_Gremlin_ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работаем с фильтром... nikolai_P Microsoft Office Excel 7 13.03.2009 14:04
Не работаем надстройка xla в 2007 excel (созданная в 2003-м) gysek Microsoft Office Excel 2 19.11.2008 12:06
Показываем объект и только потом работаем дальше celovec Общие вопросы Delphi 7 25.03.2008 15:28
Работаем с РЕЕСТРОМ Altera Windows 7 12.02.2008 18:53