Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов" - страница 5

 
Dmitriy Strelnikov:

В чем проблема? никак не пойму.

union
 
o_o:
union


Спасибо за ответ. Однако, вопрос не потерял актуальности.  В MQL4 вроде не поддерживаются объединения. По крайней мере в доке так сказано.

Так же по мере разбирательства возникли еще вопросы:

- В процедурах send и recv параметр int flags (последний) никак не освещен. Я случае с send он принимает значение - 0, а в recv - 8, почему?

- В исходном посте сказано, что клиент синхронный, а в примере реализована только отправка строки на сервер. А как же ответ ... .

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

Хочется реализовать рабочий класс для взаимодействия со сторонним сервером многих клиентов. Пока топчусь на месте, увы.  

 
Dmitriy Strelnikov:


Спасибо за ответ. Однако, вопрос не потерял актуальности.  В MQL4 вроде не поддерживаются объединения. По крайней мере в доке так сказано.

Так же по мере разбирательства возникли еще вопросы:

- В процедурах send и recv параметр int flags (последний) никак не освещен. Я случае с send он принимает значение - 0, а в recv - 8, почему?

- В исходном посте сказано, что клиент синхронный, а в примере реализована только отправка строки на сервер. А как же ответ ... .

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

Хочется реализовать рабочий класс для взаимодействия со сторонним сервером многих клиентов. Пока топчусь на месте, увы.  

Forum on trading, automated trading systems and testing trading strategies

Code breaking changes in MQL4 language

Alain Verleyen, 2017.05.18 22:10


They introduced union (not documented on MT4, but works well with ME 1599) :

union Udata_32bytes 
  {
   uchar             d_uchar[32];
   ulong             d_ulong[4];
  }
data;

void OnStart()
  {
   data.d_ulong[0]=0xFFEEDDCC;
   
   printf("uchar[%i] = %X",1,data.d_uchar[1]);

  }

 
Alain Verleyen:


ДА! Работают объединения. СПАСИБО! Я так понял, что с 12-ого мая 2017-ого была добавлена поддержка union. Замечательно!

Разработчикам не плохо было бы в доке это отразить.

Простой примерчик иллюстрирующий работу с union

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

union AS {
   uint intN;
   uchar c[4];
} a;

void OnStart()
  {
//---
   a.intN = 555; 
   
   // uint     - 4 байта 
   // uchar[4] - массив из 4-ёх элементов по одному байту
   // 555 десячеричное, это 0000 0000 0010 1011 двоичное 4-ёх байтовое
   // соответственно, это массив из 4-ёх десячеричных цифр 0 0 2 43  

   Alert(IntegerToString(a.intN) + ", побайтово - " + IntegerToString(a.c[0]) + ", " + IntegerToString(a.c[1]) + ", " + IntegerToString(a.c[2]) + ", " + IntegerToString(a.c[3]));
  }
 
 
Dmitriy Strelnikov:

- В процедурах send и recv параметр int flags (последний) никак не освещен. Я случае с send он принимает значение - 0, а в recv - 8, почему?

потому что сочиняете. не вижу я флагов =8

- В исходном посте сказано, что клиент синхронный, а в примере реализована только отправка строки на сервер. А как же ответ ... .

с такими формулировками вопросов лучше сюда обратиться
 
o_o:

потому что сочиняете. не вижу я флагов =8

с такими формулировками вопросов лучше сюда обратиться


Уважаемый, ГУРУ! Не имею такой привычки, сочинять.  Ошибка моя, видимо заключалась в том, что вопросы были адресованы пользователю с ником pavlick_ и касались класса TCP_Client, реализованного им и представленного в данной ветке выше -  https://www.mql5.com/ru/forum/91150/page3#comment_2798881

Так что прошу прощения за беспокойство. Однако, такой бурной, если не сказать больше, реакции от Вас не ожидал.

Поверьте, иногда бывает полезно сдерживать свои негативные эмоции. 

Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов"
Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов"
  • 2016.09.08
  • www.mql5.com
Опубликована статья Работа с сокетами в MQL, или Как стать провайдером сигналов: Автор: o_O Версии библиотеки 1...
 

Автору спасибо большое за статью. Успешно применил у себя для реализации WebSocket поверх и получения данных от сервиса. 

Вопрос, можно ли как-то реализовать ещё TLS шифрование? Желательно без выдачи клиенту дополнительных сертификатов. Спасибо! 

 
Illia Kharytonov:

Вопрос, можно ли как-то реализовать ещё TLS шифрование? Желательно без выдачи клиенту дополнительных сертификатов. Спасибо! 

tls это протокол, программная реализация, поэтому всё что идёт по сокету дело лично ваше.

если вас интересует RSA или AES шифрование того, что передаете - то это другой вопрос и к tls он не имеет отношения

 
Illia Kharytonov:

Автору спасибо большое за статью. Успешно применил у себя для реализации WebSocket поверх и получения данных от сервиса. 

Вопрос, можно ли как-то реализовать ещё TLS шифрование? Желательно без выдачи клиенту дополнительных сертификатов. Спасибо! 


Illia, Вы могли бы поделиться примером реализации WebSocket?

 
if(bind(server,ref.ref,sizeof(addrin))==SOCKET_ERROR)

В выше приведенной строке, получаю ошибку.

stack  damaged, check DLL function call in 'tickserver.mq5'  (<row><col>)

Что посоветуете?