Erros, bugs, perguntas - página 2706

 
Sergey Dzyublik:

Esse é o problema, não existe um livro de registo para o separador Erros em ME.

A minha falta de atenção...

 

o que é o código 556?

30 gráficos com EA, na compilação alguns não recuperaram com este código, outros recuperaram com sucesso.

 
Igor Zakharov:

o que é o código 556?

30 gráficos com EA, na compilação alguns não recuperaram com este código, o outro recuperou com sucesso.

Erro ao abrir o ficheiro dip.ex5

Mostrar registo completo, não um pedaço de imagem de ecrã

 
Lugares a incluir registos tentarão adicionar
 
Slava:

Erro ao abrir o ficheiro dip.ex5

Mostrar registo completo, não um pedaço de imagem de ecrã

ver anexo.

Arquivos anexados:
20200415.zip  5 kb
 

Alguém pode dizer-me como fazer amizade a tomadas TLS com servidor echo? Pegou no código fonte do exemplo, acrescentou os cabeçalhos. Na porta 80 faz uma actualização, mas na 443 liga e obtém um certificado, mas depois não consegue ler nada dos cabeçalhos. Se executado sob o depurador, pode ver queSocketIsReadable devolve um número semelhante, como 245, mas o SocketTlsRead trava por timeout sem devolver nada. Aparentemente, o conhecimento sagrado da MQ é necessário.

Arquivos anexados:
 

Bug ME (build 2380) assinatura incorrecta do modelo de parâmetro de função em Descrição de Erro e Informação de Parâmetro.

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:

Alguém pode dizer-me como fazer amizade a tomadas TLS com servidor echo? Pegou no código fonte do exemplo, acrescentou os cabeçalhos. Na porta 80 faz uma actualização, mas na 443 liga e obtém um certificado, mas depois não consegue ler nada dos cabeçalhos. Se executado sob o depurador, pode ver que SocketIsReadable devolve um número semelhante, como 245, mas o SocketTlsRead trava por timeout sem devolver nada. Aparentemente, o conhecimento sagrado da MQ é necessário.

Também não consegui obter uma matriz de resposta de bytes utilizando o HTTPRecv, para uma análise adicional do protocolo.
Falha no tempo limite, porque o ping pong não está organizado, mas para o organizar é necessário obter primeiro uma resposta de byte do servidor, e a própria funçãoHTTPRecv contém o tempo limite.
Mas por alguma razão o HTTPRecv não analisa esta resposta de bytes.

 
Roman:

Também não consegui obter uma matriz de resposta de bytes utilizando o HTTPRecv para uma análise adicional do protocolo.
Falha no tempo limite, porque o ping pong não está organizado, mas para o organizar é necessário obter primeiro uma resposta de byte do servidor, e a própria funçãoHTTPRecv contém o tempo limite.
Mas por alguma razão o HTTPRecv não analisa este byte de resposta.

É apenas a própria ligação. Ainda não há lá ping - pode acontecer mais tarde no protocolo websocket. O engate acontece no cabeçalho de resposta do servidor quando este tem de reconhecer a actualização. Quando não se utiliza TLS, a ligação é normal. Mas também com o TLS, parece que chega o cabeçalho ao terminal, mas não regressa daSocketTlsRead.

 
Stanislav Korotky:

Esta é apenas a própria ligação. Ainda não há lá ping - pode acontecer mais tarde no protocolo websocket. O engate acontece no cabeçalho de resposta do servidor quando este tem de reconhecer a actualização. Quando não se utiliza TLS, a ligação é normal. Mas também com TLS, parece que o cabeçalho vem para o terminal, mas não regressa de SocketTlsRead.

Sim, estou a ver o que quero dizer.
Sim, de facto, no seu código, na porta 80 devoluções de cabeçalho, na 443 não o faz.
Rewatched o seu código novamente, e não viu aí a funçãoSocketTlsHandshake.
O seu código não executa um aperto de mão. Esta pode ser a razão.
Embora a ajuda para esta função diga que não é necessária se se ligar à porta 443.
Por isso, é estranho em geral.

UPD:
Não importa como ponho o cabeçalho do pedido, ele ainda recebe o erro

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

Ou

HTTP/1.1 400 Bad Request

Talvez o programador proibisse a actualização para TLS?


UPD:
Nenhum erro com o seu cabeçalho, mas também nenhum cabeçalho de resposta.
Na funçãoHTTPRecv colocar uma impressão para ver o que está a entrar.

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

Imprime apenas um carácter H
Este carácter faz-me pensar que é a primeira letra do cabeçalho da resposta,
e não imprime o resto do cabeçalho por alguma razão.

Caros programadores, poderiam dizer-nos o que fazer?
É uma restrição intencional, ou é um erro na TLS?
Há muito tempo que luto com este problema, sem sucesso.