Diskussion zum Artikel "Arbeiten mit Sockets in MQL, oder Wie man ein Signalprovider wird"

 

Neuer Artikel Arbeiten mit Sockets in MQL, oder Wie man ein Signalprovider wird :

Sockets… Was in unserer IT-Welt könnte ohne sie auskommen? Seit 1982 und bis heute kaum verändert arbeiten sie ununterbrochen jede Sekunde für uns. Dies ist die Grundlage des Netzwerks, die Nervenenden der Matrix, in der wir alle Leben. Zuerst brauchen wir ein wenig Theorie. Schauen Sie in die Wiki oder MSDN. Die entsprechenden Artikel beschreiben das notwendigen Arsenal von Strukturen und Funktionen, sowie geben Sie Beispiele zur Einrichtung eines Clients und eines Server. In diesem Artikel wird die Umsetzung dieses Wissens in MQL berücksichtigt.

Autor: o_O

 

Danke Für die ausführliche Dokumentation, das hat mir definitv ein ganzes Stück weiter geholfen ;)

Trotzdem, in neueren Versionen scheint das folgende Casting nicht zu funktionieren.

ref_sockaddr ref=(ref_sockaddr)addrin;

 Der Workaround, der für mich geholfen hat war folgender:

   //cast struct
   ref_sockaddr ref;
   ref.ref[0] = addrin.sin_family & 0xff;
   ref.ref[1] = addrin.sin_family >> 8;
   ref.ref[2] = addrin.sin_port & 0xff;
   ref.ref[3] = addrin.sin_port >> 8;
   for (int i=0; i < sizeof(ulong); i++) ref.ref[4+i] = (addrin.sin_addr >> (8*i)) & 0xff;
   res=connect(s, ref.ref, sizeof(addrin));

Cheers, Jan

Grund der Beschwerde: