Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Клиент и сервер на разных компьютерами не соединяются https://www.cyberforum.ru/ cpp-networks/ thread2852127.html
На одном компьютере клиент соединяется с сервером, но на разных компьютерах не удается установи соединение. Клиент: #include <boost/asio.hpp> #include <iostream> using namespace boost::asio;
C++ Как поправить код?
#include<curl/curl.h> #include<string> #include"json.hpp" #include<iostream> size_t writeFunc(char *ptr, size_t size, size_t nmemb, std::string*data) { if(data) { data->append(ptr,size*nmemb);
C++ Проект "Менеджер Паролей" Создайте приложение, которое будет работать как менеджер паролей. Цель Менеджер паролей управляет паролями пользователя. Приложение должно предоставить функциональность, позволяющая пользователю безопасно хранить несколько паролей на данном компьютере. Основная идея заключается в том, что пользователь будет использовать логин и мастер-пароль для доступа к приложению, в котором он можно было... https://www.cyberforum.ru/ cpp-networks/ thread2850906.html C++ В чем разница подключения Здравствуйте есть программа для подключения к серверу написанному на java с портом 25565(TCP/UDP).Программа написана на C++.Вопрос - почему программа не подключаеться к серверу? https://www.cyberforum.ru/ cpp-networks/ thread2847768.html
Ошибка sfml, network, udp. Не могу установить соединение с клиентом C++
Здравствуйте, проблема заключается в том, что я не могу установить соединение с клиентом: Код: sf::UdpSocket socket; IpAddress address; Packet packet; char data; int port = 50001; string id; char arr(char *numbers)
C++ ошибка sfml, network, udp https://www.cyberforum.ru/ cpp-networks/ thread2847601.html
Здравствуйте, проблема заключается в том, что я не могу установить соединение с клиентом: Код: sf::UdpSocket socket; IpAddress address; Packet packet; char data; int port = 50001; string id; char arr(char *numbers)
C++ Как написать свою callback функцию? Здраствуйте. Как написать свою callback функцию (как async_read из boost::asio)? Подскажите, а то что-то не работает... Спасибо. https://www.cyberforum.ru/ cpp-networks/ thread2841846.html TCP и UDP C++
помогите пожалуйста, необходимо: TCP клиент говорит серверу, привет вот адресс, дай что-то.​ Сервер говорит окей принимай. Отсылает по UDP. Клиент говорит что принял. ВСЕ.
C++ Реализация команд LIST и NLST в FTP клиенте Привет! В учебных целях делаю консольный FTP клиент на С++. Программа уже отлично подключается/отключается с сервером, ходит по каталогам, создает и удаляет папки и файлы, а вот с командами LIST и NLST затык. Сколько не читаю про них, они будто реализуются другим способом. Для создания подключения использую WinInet. Ищу пример как можно реализовать эти команды (LIST и NLIST). Из того, что... https://www.cyberforum.ru/ cpp-networks/ thread2840314.html C++ Ошибка подключение пользователя https://www.cyberforum.ru/ cpp-networks/ thread2840125.html
После того, как клиент отправил запрос, сервер выдаёт ошибку recvfrom() 10040 и пишет - "Необработанное исключение по адресу 0x003B1D8C в Server.exe: Код инструментирования RangeChecks обнаружил обращение к массиву по индексу, выходящему за его пределы." - Cервер написан на C++, а клиент на python3. accepted connection from 192.168.1.176, port 38518 Client sended packets: hello recvfrom()...
Как пользоваться discordapi C++
Где найти описание как пользоваться discordapi
C++ Клиент не коннектится Друзья, доброго времени суток. Делаю первые шаги в программировании. Создал простенькое клиент-серверное приложение. Проверяю на своем компьютере - передача сообщений в норме. Решил проверить клиент на другом компьютере - соединения не происходит. Кто может объяснить причину? https://www.cyberforum.ru/ cpp-networks/ thread2837704.html
136 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,894
0

Функция inet_pton - Big endian или Little endian - C++ - Ответ 15584744

23.06.2021, 12:14. Показов 7918. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,

В описании функции inet_pton на MSDN:https://docs.microsoft.com/en-... -inet_pton

Говорится, что данная функция предназначена для преобразования текстового представления IPv4 и IPv6 адресов в их бинарное значение.

Вроде пока что понятно. Так же в описании ничего не сказано про порядок байт, то есть предварительно теоретически можно сделать, что никакого преобразования функция делать по описанию не должна.

Вот, что я делаю:

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
35
36
37
38
39
40
41
42
43
44
45
46
int main()
{
 
    int temp_int1;
 
    temp_int1 = 0x2a03;  //10755
 
 
    std::cout << "-----------------------------------------------------------------------------------------------" << std::endl;
    std::cout << (unsigned int)(((unsigned char*)&temp_int1)[0]) << ":";   //Вывожу значение 1-го байта temp_int1
    std::cout << (unsigned int)(((unsigned char*)&temp_int1)[1]) << ":";   //Вывожу значение 2-го байта temp_int1
    std::cout << (unsigned int)(((unsigned char*)&temp_int1)[2]) << ":";
    std::cout << (unsigned int)(((unsigned char*)&temp_int1)[3]) << ":";
    std::cout << std::endl;
    std::cout << "-----------------------------------------------------------------------------------------------" << std::endl;
 
 
    std::cout << (unsigned int)(((unsigned short*)&temp_int1)[0]) << ":";/ /Вывожу значение двухбайтовое значение
 
 
 
//-------------------------------------------------------------------------------------------------------------------------------------------
 
 
        char my_char_ipv6_ver1[] = "2a03:2880:f10a:83:face:b00c:0:25de";  //Тактовое представление IPv6. Первый хекстет совпадает с примером выше.
 
 
    int family_protocol_ = 23;       //семейство протоколов.  2 - это для ipv4;  23 - это для ipv6;
 
    char my_transform_buffer_ipv6_ver1[16];
 
 
 
    inet_pton(family_protocol_, my_char_ipv6_ver1, my_transform_buffer_ipv6_ver1);
 
 
      //Теперь тут my_transform_buffer_ipv6_ver1- преобразованный IPv6 из текста в двоичное значение.
 
 
 
        std::cout << (unsigned int)(((unsigned char*)&my_transform_buffer_ipv6_ver1)[0]) << ":"; //Вывожу значение 1-го байта my_transform_buffer_ipv6_ver1.
 
        std::cout << (unsigned int)(((unsigned char*)&my_transform_buffer_ipv6_ver1)[1]) << ":"; //Вывожу значение 1-го байта my_transform_buffer_ipv6_ver1.
 
 
}

То есть, я создал int и поместил туда значение 10755 или 0x2a03. Затем вывел значение 4 байт этого int на консоль:

C++
1
3:42:0:0:
То есть в первом байте находится значение младшего байта, во втором старшего, что вроде бы, как соответвует Little Endian или обратному порядку байт.

Далее я взял текстовое представление IPv6 "2a03:2880:f10a:83:face:b00c:0:25de" c первым хекстетом 2a03, как в первом примере и вызвал функцию inet_pton.
Функция преобразовала все 8ем хекстетов в двоичное значение и теперь я хочу посмотреть порядок байт в первом хекстете и сравнить его с первым примером.

Вывод на коносль будет такой:
C++
1
42:3:
То есть видно, что порядок байт поменялся, что вроде бы как бы соответствует Big endina или прямому или сетевому порядку байт.

То есть функция inet_pton все таки преобразовывает между порядками следования байт или я все таки не правильно интерпретирую результат работы этой функции ?

Вернуться к обсуждению:
Функция inet_pton - Big endian или Little endian C++
0
Заказать работу у эксперта
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2021, 12:14
Готовые ответы и решения:

Порядок байт в big-endian и little-endian
Всем привет! Народ подскажите мне пожалуйста простые прописные истины, а то я что то запутался!...

Из little endian в big endian
Есть 256-битное 16-ричное число: 54 68 69 73 20 69 73 20 6D 65 73 73 61 67 65 2C 20 6C 65 6E 67 74...

из little-endian в big-endian
Из little-endian в big-endian с помощью виртуальных классов

Big-endian тестирование
Есть программа, которая должна работать на little и big endian одинаково. В ней куча всяких...

2
23.06.2021, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2021, 12:14
Помогаю со студенческими работами здесь

Как проще всего работать с Big-Endian C++ ?
С++. Как проще всего работать с Big-Endian, используя стандартные операции ?

Как объединить пару байт в слово? (Загрузка WAV, Big Endian)
Привет! Есть звуковой файл с 16-и битными амплитудами. Да не суть. После открытия файла и чтения...

Перекодировать из UCS-2 Little Endian в UTF
Есть много файлов *.txt в кодировке (как я понял) UCS-2 Little Endian. Как перевести эти файлы в...

Из UCS-2 Little Endian в UTF-8 без BOM
Здравствуйте! Имеется файлик xml в кодировке UCS-2 Little Endian. Хочу написать обработчик на...

BitConverter little-endian -> big-endian
Копирую в массив byte некоторые значения byte msg = new byte;...

Big endian и little endian
Доброго времени суток! В общем, имею задание: написать программу записи массива чисел в файл в...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru