Diskussion zum Artikel "Arbeiten mit Sockets in MQL, oder Wie man ein Signalprovider wird" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ist dies ein Forum für Low-Level-Netzwerkprogrammierung? )))
Wer Client-Server-Technologien erlernen und nutzen will für
- Kopierern
- Newslettern
- Signaldistribution
- Austausch von Handelsinformationen
er nimmt es zur Kenntnis und nutzt es.
aber nicht in deinem fall, du bist einfach nicht auf dem laufenden,
also können Sie gerne vorbeigehen.
Ich werde flud löschen.
der Artikel zeigt neue Möglichkeiten auf, statt Ihr Wissen zu testen.
Wer Client-Server-Technologien erlernen und nutzen will in
- Kopierern
- Newslettern
- Signalverteilung
- Austausch von Handelsinformationen
er nimmt sie zur Kenntnis und nutzt sie.
aber nicht in deinem fall, du bist einfach nicht auf dem laufenden,
Sie können also gerne vorbeigehen.
Überschwemmung wird gelöscht.
sehr gut gemacht, ordentlich, keine Eile,
diese dummen Socket-Strukturen auf die MQL-Basis abzubilden.
ist sehr klar und deutlich. Hier https://www.mql5.com/de/articles/1361.
auch über das gleiche Socket-Thema, aber vielleicht sehr umständlich,
für einfache Aufgaben ist der vom Autor vorgeschlagene Ansatz vorzuziehen...
danke an den Autor, für mich ist es zum Beispiel sehr relevant für das aktuelle Projekt, ich werde es verwenden...
Gibt es eine Möglichkeit, dasselbe auf mql4 zu tun, ohne Drittanbieter-Dlls zu verwenden.
Ja. Alle in dem Artikel angegebenen Codes werden in mql4 auf ähnliche Weise reproduziert, aber Sie müssen trotzdem eine Windows-DLL verwenden.
Ich verstehe nicht, warum es eine solche Massenskepsis gibt, wenn jemand ein so ernstes Thema anspricht. Ist man eifersüchtig, weil der eine es weiß und der andere nicht einmal weiß, was es ist?
Zumal jetzt jeder die Möglichkeit hat, das Thema zu verstehen.
Ich verstehe nicht, warum es eine solche Massenskepsis gibt, wenn jemand ein so ernstes Thema anspricht. Ist es Neid, dass jemand Bescheid weiß und ein anderer nicht einmal weiß, worum es geht?
Zumal jetzt jeder die Möglichkeit hat, das Thema zu verstehen.
Der Code in dem Artikel ist falsch. Sie berücksichtigen die Ausrichtungen in Strukturen überhaupt nicht.
Die Größe einer Struktur in x64 ist eine theoretische Berechnung, die auf der Annahme beruht, dass Zeigerausrichtungen == 8 (8 ist am wahrscheinlichsten. Aber zum Beispiel alignof(double) in Strukturen == 4 und außerhalb == 8. Deshalb bin ich mir nicht 100%ig sicher). Aber selbst wenn es 4 ist, wird die Größe der Struktur in x64 404 statt 408 sein. Auf jeden Fall überlaufen Sie den Puffer unter WSData sowohl auf x86 als auch auf x64. Bevor Sie einen Artikel schreiben, sollten Sie die einfachsten sizeof()-Messungen durchführen und explizit die Bitgröße des Systems angeben, für das der Code geschrieben wurde (da Sie sich dazu entschieden haben, Systemstrukturen zu duplizieren). Ich spreche nicht von der vorzeichenlosen Anfangsadresse der Struktur. Ich habe nicht den gesamten Code überprüft, vielleicht gibt es auch bei anderen Strukturen Probleme.Übrigens, wenn jemand aus dem MKL-Team die Meldung sieht: all your addresses are unaligned, warum? Moderne Prozessoren sind intelligent genug, und alle Modelle werden die Daten lesen können? Eine kleine Gebühr in Form von Leistungseinbußen, aber mehr nicht (nichts wie Abstürze).
Ich bin aber nicht ganz richtig. In MQL wird die Größe von WSData viel größer sein als nötig (lpVendorInfo[] ist ein dynamisches Array mit einer Größe von etwa 50, kein Zeiger). Der Code sollte also korrekt funktionieren. Aber das ist ein Zufall, Sie haben Glück, keine korrekten theoretischen Annahmen. Die Struktur selbst ist in MKL nicht gültig, es ist besser, ein Array von ausreichender Größe zu erstellen und nichts zu deklarieren. Wenn Sie geschrieben hätten:
hätten Sie einen Fehler erhalten.ja, in MQL sind Strukturen aneinander ausgerichtet https://www.mql5.com/de/docs/basis/types/classes
Nach dem Inhalt von WinSock2.h zu urteilen, ist die WSAData-Struktur ohne #pragma pack(1), so dass ihre Größe, wie Sie sagten, mehr als µl betragen kann.
Aber ich kann sagen, dass entweder etwas falsch zählt oder diese Daten nicht den Stack töten, aber alle mcl-Software mit diesen Sockeln arbeitet stabil und ohne Verluste seit Monaten ohne Terminal-Neuladen.
Es wäre gut, wenn man es ganz herausfinden könnte.
Und machen Sie sich keine Gedanken über die Ausrichtung oder darüber, wo der Compiler die zusätzlichen Bytes einfügt. Sie greifen sowieso nicht auf ein Feld zu, wozu also der Aufwand, eine Struktur zu deklarieren?