Errori, bug, domande - pagina 2378

 
Renat Fatkhullin:

1. questa è l'interfaccia.

Le funzioni TLS sono ausiliarie per supportare casi complessi. Nessun problema con l'impostazione di SocketTimeouts - questi sono i migliori da usare.


2. Svolge correttamente la sua funzione.

Apparentemente non sei consapevole dei problemi di rilevamento delle connessioni TCP interrotte. È abbastanza difficile (richiede molte risorse al costo di chiamate extra) rilevare che una connessione è garantita per essere interrotta correttamente. Tutte le implementazioni di rete soffrono di questo problema.

La nostra implementazione di SocketIsReadible è abbastanza intelligente da avere un rilevatore di rottura. Quando rileva uno 0 byte pulito, fa il lavoro extra di controllare che il socket sia completo:

Poiché restituisce il numero di byte senza un flag di terminazione, emette 1 byte in modo che un successivo/imminente tentativo di lettura di SocketRead restituisca normalmente un errore.

Perché questo è corretto? Perché la maggior parte del codice è scritto dai programmatori in questo modo:

il risultato effettivo dell'operazione è controllato su un tentativo di lettura diretta.


3. ha bisogno di fare SocketIsReadible() prima della lettura effettiva, se non si conosce la dimensione esatta dei dati da leggere.

Il binding SocketisReadible/SocketRead vi dà la possibilità di non perdere il controllo (minimizzare a quasi zero la perdita di controllo) sul flusso di esecuzione del vostro programma. Questo evita di volare nei timeout di rete.

Sì, qualche riga di codice in più, ma non perderai il controllo per un millisecondo (circa). Sta a voi decidere cosa fare negli intervalli di assenza di dati di rete.


4. spiegato nel secondo paragrafo.

Emettere 1 per la stimolazione della lettura ed emettere come errore di lettura.



Le vostre conclusioni sono sbagliate.

Questa è la natura del trasporto TCP/IP, dove non ci sono garanzie. Si può entrare nei buchi neri della rete anche lì sui filtri/firewall quando non c'è una parte di segnalazione TCP. Il timeout grezzo e il controllo del flusso di dati vi permettono di rilevarli e di terminare le connessioni da soli.

Abbiamo dato un'interfaccia di accesso grezzo/diretto alle funzioni di rete, comprese le implementazioni TLS. Se li usate, siete voi che dovete avvolgere correttamente le funzioni grezze in un gestore SocketIsReadible/SocketRead sicuro/controllato.

Se volete fare richieste di alto livello senza dover pensare alle minuzie, ci sono le funzioniWebRequest. Tutte le protezioni sono costruite lì dentro.

Grazie mille per la risposta fornita.

A mio modesto parere però:
1. Se le funzioni SocketRead e SocketTlsRead eseguono la stessa azione, allora dovrebbero avere le stesse interfacce adattate, assolutamente.

2. a. Sì, non so nulla di problemi con il rilevamento dell'interruzione della connessione TCP;
b) la funzione SocketIs*, secondo le raccomandazioni di denominazione delle funzioni, dovrebbe produrre un risultato True/False, ma non uint; (dove l'avete letto? Se non sbaglio nei lavori di Scott Meyers nel 2014).
c) Grazie per aver spiegato perché SocketIsReadible può restituire 1 se non è stata stabilita alcuna connessione TCP (nessun internet in anticipo o dominio non aggiunto alla lista consentita).
Si prega di aggiungere anche una descrizione appropriata alla documentazione.

3,4) Capito, grazie.

 

Ciao a tutti.

Si prega di aiutare a risolvere un problema con MT5 tester versione 1940 - non contando Profit. Ho 3 versioni di MT5 (dal broker e scaricate dal sito del produttore), installate su diversi PC, tutti i risultati sono gli stessi - non contando Profit, non lavorando test e ottimizzazione.

Ho registrato un video per illustrare.


 

K-Meleon non mostra il testo nei messaggi

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

K-Meleon non mostra il testo nei messaggi

È un browser morto, probabilmente è inutile cercare di farlo funzionare...

 
Vladimir Pastushak:

È un browser morto, quindi probabilmente non ha senso fare qualcosa per esso...

Non è avido di risorse.

 
fxsaber:

Non richiede risorse.

Sì, si può vedere, l'ho provato su alcuni siti, ha un sacco di problemi...

Prova la versione beta di Vivaldi, comoda, veloce, molti servizi, molte impostazioni, supporta le applicazioni di chrome....

 
Quando cerco di aggiornare il mio script in kodobase ottengo solo un errore
main file not found

l'unico file MQ5 è in questo percorso

MQL5\Scripts\fxsaber\

Come risolvere il problema?


SZZ mostra lo stato "Verificato dal moderatore".

Ho messo il file mq5 solo in Scripts - stessa reazione.
 
fxsaber:
Quando cerco di aggiornare il mio script in kodobase ottengo solo un errore

l'unico file MQ5 è in questo percorso

Come risolvere il problema?


SZZ mostra lo stato "Verificato dal moderatore".

SZY Ho messo il file mq5 semplicemente in Scripts - stessa reazione.
Non scrivere la tua cartella nel percorso.
 
Vladimir Karputov:
Non scrivere la propria cartella nel percorso.

Scegliere l'opzione 'default' ha funzionato. Ma solo questa opzione è sbagliata.

È molto irragionevole mettere tutti gli script in una cartella. Ci dovrebbe essere almeno una sistematizzazione per sottocartelle.

 
fxsaber:

Scegliere l'opzione 'default' ha funzionato. Ma solo questa opzione è sbagliata.

È molto irragionevole mettere tutti gli script in una cartella. Ci dovrebbe essere una sistematizzazione almeno per sottocartelle.

Recentemente ho chiesto delle cartelle individuali, la risposta è stata: "tutto in un mucchio" e non cambierà ancora.
Se mi serve molto per gli inluders, aggiungo "KVN" al nome del file.