Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов" - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Разве это форум по низкоуровневому сетевому программированию? )))
кто хочет учится и использовать клиент-серверные технологии в
- копировщиках
- рассылке новостей
- рассылке сигналов
- обмене торговой информацией
тот берёт на заметку и использует.
но не в вашем случае, вы просто не в теме,
поэтому смело проходите мимо.
флуд буду удалять.
статья раскрывает новые возможности, а не делает тест ваших знаний.
кто хочет учится и использовать клиент-серверные технологии в
- копировщиках
- рассылке новостей
- рассылке сигналов
- обмене торговой информацией
тот берёт на заметку и использует.
но не в вашем случае, вы просто не в теме,
поэтому смело проходите мимо.
флуд буду удалять.
очень хорошо все сделано, аккуратно, без спешки,
отображение этих дурацких сокетных структур на MQL базу
получилось ясным и наглядным. вот тут https://www.mql5.com/ru/articles/1361
тоже примерно на эту же сокетную тему, но, пожалуй, очень громоздко,
для простых задач подход, предложенный автором предпочтительней...
автору спасибо, для меня, к примеру, очень в тему для текущего проекта, буду испльзовать...
а есть возможность сделать тоже самое на mql4 без использования сторонних dll.
да. все коды приведенные в статье воспроизводятся аналогично и в mql4. но виндовую dll все равно придётся использовать.
Непонятно почему такой массовый скепсис, когда человек делится такой серьезной темой. Завидно что ли, что кто-то знает, а кто-то даже не понимает, что это?
Тем более, что теперь у всех появилась возможность разобраться в теме.
Непонятно почему такой массовый скепсис, когда человек делится такой серьезной темой. Завидно что ли, что кто-то знает, а кто-то даже не понимает, что это?
Тем более, что теперь у всех появилась возможность разобраться в теме.
Код в статье ошибочен. Вы совершенно не учитываете выравнивание в структурах.
Размер структуры в x64 - теоретический расчёт, исходя из предположения, что выравнивания указателя == 8 (скорее всего 8. Но, например, alignof(double) в структурах == 4, а во вне == 8. Поэтому на 100% не уверен). Но даже если 4, то размер структуры в x64 будет равен 404 вместо 408. Вы в любом случае переполняете буфер под WSData как на x86 так и на x64.Перед написанимем статьи, необходимо делать простейшие замеры sizeof() и явно указывать битность системы, под которую написан код (раз вы взялись за дублирование системных структур). Про невыровненность начального адреса структуры я уже молчу. Весь код не проверял, возможно и с другими структурами имеются проблемы.Кстати, если кто-то из команды МКЛ увидет сообщение: у вас все адреса невыравнены, почему? Современные процессоры достаточно умны, и все модели смогут прочитать данные? Небольшая плата в виде потери производительности, но не более (ничего типа аварийного завершения).
Хотя я не совсем прав. В MQL размер WSData будет много больше необходимого (lpVendorInfo[] динамический массив с размеров около 50, а не указатель). Поэтому код должен работать правильно. Но это случайность, вам повезло, не верны теоретические предположения. Сама структура в МКЛ не валидна, лучше создать массив достаточного размера и ничего не объявлять. Если бы вы написали:
то получили бы ошибку.да, в MQL структуры идут выровненные https://www.mql5.com/ru/docs/basis/types/classes
судя по содержимому WinSock2.h структура WSAData стоит без #pragma pack(1), поэтому её размер как вы сказали может оказаться больше чем мкл.
Но могу сказать, что или что-то не так считает, или эти данные не убивают стек, но весь мкл софт с этими сокетами стабильно и без потерь работает месяцами без перезагрузки терминала.
Разобраться до конца было бы хорошо.
И не париться о том, какое там выравнивание и куда компилятор засунул доп байты. Всё равно не обращаетесь ни к одному полю, так нафига эта головная боль в виде попытки объявить структуру?