Errori, bug, domande - pagina 2706

 
Sergey Dzyublik:

Questo è il problema, non c'è un registro per la scheda Errori in ME.

La mia disattenzione...

 

qual è il codice 556?

30 grafici con EA, alla compilazione alcuni non hanno recuperato con questo codice, altri con successo.

 
Igor Zakharov:

qual è il codice 556?

30 grafici con EA, sulla compilazione alcuni non hanno recuperato con questo codice, gli altri con successo.

Errore nell'apertura del file dip.ex5

Mostra il log completo, non un pezzo di screenshot

 
I posti da includere nei registri cercheranno di aggiungere
 
Slava:

Errore nell'apertura del file dip.ex5

Mostra il log completo, non un pezzo di screenshot

vedi allegato.

File:
20200415.zip  5 kb
 

Qualcuno può dirmi come fare amicizia con le prese TLS con il server echo? Ho preso il codice sorgente dall'esempio, ho aggiunto le intestazioni. Sulla porta 80 fa un aggiornamento, ma sulla 443 si connette e ottiene un certificato, ma poi non può leggere nulla dagli header. Se eseguito sotto il debugger, si può vedere cheSocketIsReadable restituisce un numero simile, come 245, ma SocketTlsRead va in crash per timeout senza restituire nulla. A quanto pare, è necessaria una conoscenza sacra di MQ.

File:
 

Bug ME (build 2380) firma errata del parametro del modello di funzione nella descrizione dell'errore e nelle informazioni sul parametro.

template<typename T>
class A{};

class B{
public:  
   template<typename T>
   static void test(A<T> &, A<int>* = NULL){
      int x = 1 / 0;                       //'0' - division by zero |  in template 'void B::test(B:: A<T>&,A<int>*)' specified with [T=long]
   }
};

void OnStart(){
   A<long> a;
   B::test(a);                             // Parameter info: void test([unknown] &, [unknown] *=NULL)
}
 
Stanislav Korotky:

Qualcuno può dirmi come fare amicizia con le prese TLS con il server echo? Ho preso il codice sorgente dall'esempio, ho aggiunto le intestazioni. Sulla porta 80 fa un aggiornamento, ma sulla 443 si connette e ottiene un certificato, ma poi non può leggere nulla dagli header. Se eseguito sotto il debugger, si può vedere che SocketIsReadable restituisce un numero simile, come 245, ma SocketTlsRead va in crash per timeout senza restituire nulla. A quanto pare, è necessaria una conoscenza sacra di MQ.

Ho anche fallito nell'ottenere un array di risposta in byte usando HTTPRecv, per un ulteriore parsing del protocollo.
Fallisce al timeout, perché il ping pong non è organizzato, ma per organizzarlo è necessario ottenere prima la risposta in byte dal server, e la stessa funzioneHTTPRecv contiene il timeout.
Ma per qualche motivo HTTPRecv non analizza questo byte di risposta.

 
Roman:

Ho anche fallito nell'ottenere un array di risposta in byte usando HTTPRecv per un ulteriore parsing del protocollo.
Fallisce sul timeout, perché il ping pong non è organizzato, ma per organizzarlo è necessario ottenere prima la risposta in byte dal server, e la stessa funzioneHTTPRecv contiene il timeout.
Ma per qualche motivo HTTPRecv non analizza questo byte di risposta.

È solo la connessione stessa. Non c'è ancora un ping - può accadere più tardi nel protocollo websocket. L'intoppo avviene nell'intestazione della risposta del server quando deve riconoscere l'aggiornamento. Quando non si usa TLS, si connette normalmente. Ma anche con TLS, sembra che l'intestazione al terminale arrivi, ma non ritorna daSocketTlsRead.

 
Stanislav Korotky:

Questa è solo la connessione stessa. Non c'è ancora un ping - può accadere più tardi nel protocollo websocket. L'inceppamento avviene nell'intestazione della risposta del server quando deve riconoscere l'aggiornamento. Quando non si usa TLS, si connette normalmente. Ma anche con TLS, sembra che l'intestazione arrivi al terminale, ma non ritorna da SocketTlsRead.

Sì, ho capito cosa voglio dire.
Sì, infatti nel tuo codice, sulla porta 80 l'intestazione ritorna, sulla 443 no.
Ho rivisto il tuo codice e non ho visto la funzioneSocketTlsHandshake.
Il vostro codice non esegue un handshake. Questa può essere la ragione.
Anche se l'aiuto per questa funzione dice che non è richiesta se ci si connette alla porta 443.
Quindi è strano in generale.

UPD:
Non importa come metto l'intestazione della richiesta, si ottiene ancora l'errore

ERR_NETSOCKET_IO_ERROR 5273  Ошибка отправки/получения данных из сокета

Oppure

HTTP/1.1 400 Bad Request

Forse lo sviluppatore ha proibito di ricevere l'aggiornamento a TLS?


UPD:
Nessun errore con la tua intestazione, ma nemmeno un'intestazione di risposta.
Nella funzioneHTTPRecv mettete una stampa per vedere cosa sta arrivando.

result += CharArrayToString(rsp, 0, rsp_len, CP_UTF8);
Print(result);

Stampa solo un carattere H
Questo carattere mi fa pensare che sia la prima lettera dell'intestazione della risposta,
e non stampa il resto dell'intestazione per qualche motivo.

Cari sviluppatori, potreste dirci cosa fare?
È una restrizione intenzionale o è un errore in TLS?
Ho lottato a lungo con questo problema, senza successo.