Fehler, Irrtümer, Fragen - Seite 2378

 
Renat Fatkhullin:

1. Dies ist die Schnittstelle.

TLS-Funktionen sind Hilfsfunktionen zur Unterstützung komplexer Fälle. Kein Problem mit der Einstellung von SocketTimeouts - diese sind am besten zu verwenden.


2. er seine Funktion korrekt ausführt.

Offenbar sind Sie sich der Probleme bei der Erkennung unterbrochener TCP-Verbindungen nicht bewusst. Es ist recht schwierig (ressourcenintensiv und mit zusätzlichen Anrufen verbunden) zu erkennen, dass eine Verbindung garantiert korrekt unterbrochen wird. Alle Netzimplementierungen leiden unter diesem Problem.

Unsere Implementierung von SocketIsReadible ist intelligent genug, um eine Brucherkennung zu haben. Wenn es eine saubere 0 Bytes erkennt, macht es die zusätzliche Arbeit, zu prüfen, ob die Buchse vollständig ist:

Da er die Anzahl der Bytes ohne Abbruchkennzeichen zurückgibt, gibt er 1 Byte aus, so dass ein nachfolgender/vorheriger SocketRead-Leseversuch normalerweise einen Fehler zurückgibt.

Warum ist dies richtig? Denn der größte Teil des Codes wird von Programmierern auf diese Weise geschrieben:

das tatsächliche Ergebnis der Operation wird bei einem direkten Leseversuch überprüft.


3. SocketIsReadible() muss vor dem eigentlichen Lesen ausgeführt werden, wenn Sie die genaue Größe der zu lesenden Daten nicht kennen.

Die SocketisReadible/SocketRead-Bindung gibt Ihnen die Möglichkeit, die Kontrolle über den Ausführungsablauf Ihres Programms nicht zu verlieren (minimieren Sie den Kontrollverlust auf nahezu Null). Dadurch werden Zeitüberschreitungen im Netz vermieden.

Ja, ein paar Zeilen mehr Code, aber Sie verlieren nicht für eine Millisekunde (ungefähr) die Kontrolle. Es liegt an Ihnen zu entscheiden, was Sie in den Zeiten tun, in denen keine Netzdaten vorhanden sind.


4. im zweiten Absatz erläutert.

Ausgabe 1 für die Lesestimulation und Ausgabe als Lesefehler.



Ihre Schlussfolgerungen sind falsch.

Dies liegt in der Natur des TCP/IP-Transports, bei dem es keinerlei Garantien gibt. Man kann auch bei Filtern/Firewalls in schwarze Löcher im Netzwerk geraten, wenn kein TCP-Signalisierungsteil vorhanden ist. Mit Raw-Timeout und Datenflusskontrolle können Sie diese erkennen und die Verbindungen selbst beenden.

Wir haben eine Roh-/Direktzugriffsschnittstelle zu Netzwerkfunktionen, einschließlich TLS-Implementierungen, geschaffen. Wenn Sie sie verwenden, sind Sie derjenige, der die rohen Funktionen ordnungsgemäß in einen sicheren/kontrollierten SocketIsReadible/SocketRead-Handler verpacken muss.

Wenn Sie Anfragen auf hohem Niveau stellen möchten, ohne sich über die Einzelheiten Gedanken machen zu müssen, gibt es dieWebRequest-Funktionen. Alle Schutzmechanismen sind dort eingebaut.

Vielen Dank für die Antwort.

Aber meiner bescheidenen Meinung nach:
Wenn die Funktionen SocketRead und SocketTlsRead dieselbe Aktion ausführen, dann sollten sie auf jeden Fall dieselben angepassten Schnittstellen haben.

2. a. Ja, ich weiß nichts über Probleme mit der Erkennung von TCP-Verbindungsabbrüchen;
b) die Funktion SocketIs* soll nach den Empfehlungen für die Funktionsbenennung das Ergebnis True/False liefern, aber nicht uint; (Wo haben Sie das gelesen? Wenn ich mich nicht irre, in Scott Meyers Arbeiten von 2014).
c) Danke für die Erklärung, warum SocketIsReadible 1 zurückgeben kann, wenn überhaupt keine TCP-Verbindung hergestellt wurde (kein Internet im Voraus oder keine Domäne in der zulässigen Liste).
Bitte fügen Sie auch eine entsprechende Beschreibung in die Dokumentation ein.

3,4) Verstanden, danke.

 

Hallo zusammen.

Bitte helfen Sie bei der Lösung eines Problems mit MT5 Tester Version 1940 - not counting Profit. Ich habe 3 Versionen von MT5 (von Broker und heruntergeladen von der Website des Herstellers), auf verschiedenen PCs installiert, alle Ergebnisse sind die gleichen - nicht zählen Profit, nicht funktionierender Prüfung und Optimierung.

Zur Veranschaulichung habe ich ein Video aufgenommen.


 

K-Meleon zeigt keinen Text in Nachrichten an

K-Meleon :: Главная
K-Meleon :: Главная
  • kmeleon.geckoworld.ru
На этой неделе суммарное число загрузок всех версий Pro-сборки K-Meleon (75-76 Pro) по официальным ссылкам превысило 100 000! Конечно не каждая загрузка - это новый пользователь, но ведь наш браузер раздается и на торрентах, а также разошелся по другим площадкам, откуда его тоже качают. Таким образом, мы можем уверенно говорить о том, что наше...
 
fxsaber:

K-Meleon zeigt keinen Text in Nachrichten an

Es ist ein toter Browser, es ist wahrscheinlich sinnlos, zu versuchen, ihn zum Laufen zu bringen...

 
Vladimir Pastushak:

Es ist ein toter Browser, also macht es wahrscheinlich keinen Sinn, etwas dafür zu entwickeln...

Es ist nicht ressourcenhungrig.

 
fxsaber:

Es ist nicht ressourcenintensiv.

Ja, das kann man sehen, ich habe es auf einigen Websites ausprobiert, es hat eine Menge Probleme...

Versuchen Sie Vivaldi Beta-Version, handlich, schnell, viele Möglichkeiten, viele Einstellungen, unterstützt Chrome-Anwendungen....

 
Wenn ich versuche, mein Skript in kodobase zu aktualisieren, erhalte ich nur einen Fehler
main file not found

die einzige MQ5-Datei befindet sich in diesem Pfad

MQL5\Scripts\fxsaber\

Wie kann man das beheben?


SZZ zeigt den Status "Verifiziert durch Moderator" an.

Ich habe die mq5-Datei einfach in Scripts abgelegt - gleiche Reaktion.
 
fxsaber:
Wenn ich versuche, mein Skript in kodobase zu aktualisieren, erhalte ich nur einen Fehler

die einzige MQ5-Datei befindet sich in diesem Pfad

Wie kann man das beheben?


SZZ zeigt den Status "Verifiziert durch Moderator".

SZY Ich habe die mq5-Datei einfach in Scripts eingefügt - gleiche Reaktion.
Schreiben Sie Ihren Ordner nicht in den Pfad.
 
Vladimir Karputov:
Schreiben Sie nicht Ihren eigenen Ordner in den Pfad.

Die Auswahl der Option "Standard" hat funktioniert. Aber nur diese Option ist falsch.

Es ist sehr unvernünftig, alle Skripte in einem Ordner abzulegen. Zumindest sollte es eine Systematisierung nach Unterordnern geben.

 
fxsaber:

Die Auswahl der Option "Standard" hat funktioniert. Aber nur diese Option ist falsch.

Es ist sehr unvernünftig, alle Skripte in einem Ordner abzulegen. Es sollte zumindest eine Systematisierung nach Unterordnern geben.

Ich habe kürzlich erst nach einzelnen Ordnern gefragt, die Antwort war: "alle auf einen Haufen" und wird sich auch nicht ändern.
Wenn ich sie dringend für die Einfügung benötige, füge ich dem Dateinamen "KVN" hinzu.