Задать вопрос
  • Возможно ли на Windows 10 вообще отключить обновления?

    Ezhyg
    @Ezhyg
    O&O ShutUp10

    Windows Update MiniTool

    и куча других инструментов, в том числе самому ручками через политики, реестр...
    Ответ написан
    Комментировать
  • Как сделать простой get запрос используя boost?

    @4rtzel
    Пример с использованием Boost.Beast (доступен с 1.66 версии). За основу взял пример отсюда и слегка изменил его.

    #include <boost/beast.hpp>
    #include <boost/asio/connect.hpp>
    #include <boost/asio/ip/tcp.hpp>
    
    namespace http = boost::beast::http;
    
    int main() {
        const std::string host = "scooterlabs.com";
        const std::string target = "/echo?input=test";
    
        // I/O контекст, необходимый для всех I/O операций
        boost::asio::io_context ioc;
    
        // Resolver для определения endpoint'ов
        boost::asio::ip::tcp::resolver resolver(ioc);
        // Tcp сокет, использующейся для соединения
        boost::asio::ip::tcp::socket socket(ioc);
    
        // Резолвим адрес и устанавливаем соединение
        boost::asio::connect(socket, resolver.resolve(host, "80"));
    
        // Дальше необходимо создать HTTP GET реквест с указанием таргета
        http::request<http::string_body> req(http::verb::get, target, 11);
        // Задаём поля HTTP заголовка
        req.set(http::field::host, host);
        req.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING);
        
        // Отправляем реквест через приконекченный сокет
        http::write(socket, req);
    
        // Часть, отвечающая за чтение респонса
        {
            boost::beast::flat_buffer buffer;
            http::response<http::dynamic_body> res;
            http::read(socket, buffer, res);
    
            std::cout << res << std::endl;
        }
        // Закрываем соединение
        socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both);
    
        return 0;
    }


    Компиляция:
    g++ -lboost_system -pthread main.cpp
    Ответ написан
    7 комментариев
  • Как правильно использовать строки в плюсах?

    @Mercury13
    Программист на «си с крестами» и не только
    • std::string — как правило, если не указано противное.

    • QString, AnsiString/UnicodeString и прочие — в соответствующих фреймворках, обычно очень близко к интерфейсным функциям.

    • char* — практически не используется в реальном коде. В основном для оптимизации, если есть собственное управление памятью. Довелось как-то в собственном разборщике XML (работает в 2,5 раза медленнее рекордсмена, pugixml. Зато даже это в разы быстрее Excel’я, пространства имён «из коробки», расход памяти мизерный и программирование простейшее.)
    Зато по-чёрному используется его const-аналог.

    • const char*. Это может быть одинокий const char* + нуль-терминированная строка, или указатель+длина, или указатель на начало + указатель за конец.
    1. Если ожидается, что в функцию будем передавать строковый литерал.
    void writeEnum(st::Stream& st, int value, const char* names[]) {}
    
    enum class Letter { A, B, C, …, Z, NN };
    const char* natoNames[static_cast<int>(Letter::NN)] = { "alpha", "bravo", "charlie", … };
    writeEnum(someStream, static_cast<int>(Letter::E), natoName);

    2. Если операцию со строкой можно произвести «на месте», не заводя новую память: (trim, как известно,— обрезка пробелов в начале и конце)
    void trim(const char*& beg, const char*& end);

    3. Если структура данных паразитирует на чужих строках, не заводя своей памяти. Особенно если конструкция строк неизвестна (например, при передаче данных из плагина в плагин).
    struct ParasiteString { const char *beg, *end; };

    4. В библиотеках, если они реально настолько компактные, что нет нужды обязательно подключать жирный STL.

    • char[] — только как оптимизация, когда предельная длина строки известна и невелика.
    wchar_t* myFtos(double value, wchar_t* buf, const FloatFormat& format) {}
    
    wchar_t buf[100];
    myFtos(100.500, buf, FloatFormat::NICE);
    Ответ написан
    Комментировать
  • Поясните смысл статической функции вне класса в C++?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Семантика совершенно другая. Область видимости статической функции ограничивается единицей трансляции в которой она определяется.
    Своего рода инкапсуляция в C.
    Ответ написан
    7 комментариев
  • Проверка TextBox на числа?

    Nipheris
    @Nipheris Куратор тега C++
    Ответ написан
    Комментировать
  • Проверка TextBox на числа?

    @alexalexes
    В студенческие годы оборачивал в try catch:
    a = Convert::ToInt32(S1);
    Если конвертер обваливается - то было не число, прокатило преобразование - значит число.
    Для учебных нужд хватало с головой.
    Ответ написан
    Комментировать
  • Может ли wi-fi адаптер не поддерживать NAT?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    //COPY01 EXEC PGM=IEBGENER
    wi-fi адаптер понятия не имеет, что такое NAT, он будет передавать то, что ему отдал драйвер адаптера. (Уровень OSI 1)
    Драйвер адаптера Wi-Fi понятия не имеет, что такое NAT, он будет передавать то, что ему отдал вышестоящий модуль (Уровень OSI 2)
    Вот модуль в ядре, обеспечивающий работу OSI 3, в том числе iptables, знает, что такое NAT, но понятия не имеет, кто будет передавать то, что он сформирует :)
    Ответ написан
    Комментировать
  • Как создать прямое соединение между двумя клиентами?

    Jump
    @Jump
    Системный администратор со стажем.
    Как установить прямое соединение между двумя клиентами не имеющими белые IP и без участия центрального сервера?
    Это невозможно.

    например, в Скайпе используется какая-то технология P2P
    У скайпа есть достаточное количество серверов с белым IP.
    Ответ написан
  • Как настроить мост между 2 модемами ADSL?

    Jump
    @Jump
    Системный администратор со стажем.
    ADSL это клиентское устройство, которое подключается к DSLAM.
    Ответ написан
    Комментировать
  • OpenVPN сервер с одной сетевой картой?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Видимо, на сервере не включен форвардинг пакетов (net.ipv4.ip_forward) или фаерволл не настроен (возможны оба варианта). Загуглите любой гайд по настройке опенвпна, там в числе прочего написано про это.

    И про маршруты в обе стороны не забудьте, разумеется, как вам уже посоветовали.
    Ответ написан
    3 комментария
  • Почему не подключается к OpenVPN?

    p00h
    @p00h
    Фехтовальщик-стропальщик
    Подключение в режиме point-to-point будет работать только в режиме tap, а не tun. Из личного опыта.
    Ответ написан
  • Где находится пользователь anonymus?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    анонимус может быть алиасом ftp. Прописываться это может в конфиге сервера ftp
    Ответ написан
    Комментировать
  • Как соединить 3 роутера?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    вам надо прописать статические маршруты между подсетями
    Ответ написан
    24 комментария
  • Почему вылетает исключение в MSVC?

    Программа падает тут
    free(current);
    Падает, потому что после освобождения памяти у current вы пытаетесь потом пользоваться этой памятью. Соответственно возникает Access Violation/

    Рабочий вариант кода
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define TSIZE 45
    
    struct film
    {
    	char title[TSIZE];
    	int rating;
    	struct film * next;
    };
    
    char * s_gets(char * str, int n);
    
    int main(int argc, char * argv[])
    {
    	struct film * head = NULL;
    	struct film * prev, *current;
    	char input[TSIZE];
    
    	puts("Input first name of movie: ");
    
    	while (s_gets(input, TSIZE) != NULL && input[0] != '\0')
    	{
    		current = (struct film *) malloc(sizeof(struct film));
    
    		if (head == NULL)
    			head = current;
    		else
    			prev->next = current;
    
    		current->next = NULL;
    
    		strcpy(current->title, input);
    
    		puts("Input your rating: ");
    		scanf("%d", &current->rating);
    
    		while (getchar() != '\n')
    			continue;
    
    		puts("Input the next name of movie: ");
    
    		prev = current;
    	}
    
    	if (head == NULL)
    		printf("Data not found");
    	else
    		printf("List of movies:\n");
    
    	current = head;
    
    	while (current != NULL)
    	{
    		printf("Movie: %s, rating: %d\n", current->title, current->rating);
    
    		current = current->next;
    	}
    
    	current = head;
    
    	while (current != NULL)
    	{
    		auto next = current->next;
    		free(current);
    
    
    		current = next;
    	}
    
    	printf("The programm is completed.\n");
    
    	_getch();
    
    	return 0;
    }
    
    char * s_gets(char * str, int n)
    {
    	char * value;
    	char * find;
    
    	value = fgets(str, n, stdin);
    
    	if (value)
    	{
    		find = strchr(str, '\n');
    
    		if (find)
    			*find = '\0';
    		else
    			while (getchar() != '\n')
    				continue;
    	}
    
    	return value;
    }
    Ответ написан
    2 комментария
  • Как выставить правильно приоритет интерфейса в Win 10 (интернет+локалка)?

    fzfx
    @fzfx
    18,5 дм
    на вашем месте я бы избавился в настройках локальной сети от шлюза по умолчанию. указывать его для сети, которая не обеспечивает доступ в интернет - прямой путь именно к вашей проблеме.
    Ответ написан
    Комментировать
  • Как сделать белый список IP на CentOs?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    man iptables
    man ipset

    Например:
    Создаем таблицу
    /etc/sysconfig/ipset:
    create anynodes hash:net family inet hashsize 1024 maxelem 65536 
    add anynodes 192.168.1.0/24
    add anynodes 192.168.10.0/24
    add anynodes 192.168.15.0/24
    add anynodes 192.168.16.0/24

    Здесь anynodes - просто произвольное имя таблицы

    /etc/sysconfig/iptables:
    *filter
    :INPUT DROP [0:0]
    -A INPUT -p tcp --dport 22 -m set --match-set anynodes src -j ACCEPT
    -A OUTPUT -p tcp --sport 22 -m set --match-set anynodes dst -j ACCEPT

    Разрешаем доступ по ssh только адресам, входящим в anynodes (остальных отстретит правило по умолчанию)
    Ответ написан
    3 комментария
  • Порекомендуйте как настроить браузер, с которого можно выходить только на один сайт?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Теоретически - модулем родительского контроля с паролем на изменение. Практически - это работает только против полных чайников. Почему? Инет есть сейчас в каждом холодильнике и погуглить как обойти этот контроль совсем несложно.

    Настраивать нужно не браузер, а брандмауэр винды - винда же? Пропускать коннект на нужный сайт, валить все остальное.
    Ответ написан
    Комментировать
  • Можно узнать ip устройств которые подключены к сети Wi-fi?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Если сеть зашифрована - нет.
    Если сеть открытая - да, ловите пакеты и "там всё написано".
    Про промежуточные варианты (зашифрована, но слабым шифрованием) не подскажу.
    Ответ написан
    2 комментария
  • Qt Creator настройка кросс-компиляции для Raspbian, откуда брать qmake?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Насколько я понимаю, нужно пересобрать Qt под требуемую платформу, там и qmake должен появиться.
    Ответ написан
    1 комментарий