IndySockets / Indy

Indy - Internet Direct
https://www.indyproject.org
434 stars 147 forks source link

Service compiled with Delphi 11 (TidTCPServer) with Clients compiled with Delphi XE3 not connecting. #509

Closed pablofabianromero closed 7 months ago

pablofabianromero commented 7 months ago

Hello friends.

I have a problem and I don't know what to do anymore.

I have a service programmed with Delphi+Indy 10, which it validates the licenses of an ERP system I work on.

That service is compiled with Delphi XE7. The ERP is compiled with Delphi XE3.

Both use OpenSSL libraries from 2014 and they connect very well.

So, we updated the ERP to Delphi 11 to create "a new version of the ERP." I had to make some tweaks to the ERP and the service and now, they connect very well. Both with Delphi 11 and OpenSSL 2019.

My problem: all the clients with the ERP compiled with Delphi XE3 no longer connect to the service compiled with Delphi 11. I tried all possible paths.

Debugging, when the ERP with Delphi XE3 connects to the service compiled with Delphi 11, it gets an error receiving garbage.

image

Has anyone dealt with this? any advice?

Regards

rlebeau commented 7 months ago

Indy's underlying I/O logic really hasn't changed much since before XE3, so the problem is likely a mismatch with either the data itself, or the connection setups. Can you provide some code snippets showing how you are setting up the connections on both sides, and sending/receiving the data that is failing? The data in your screenshot looks binary, not textual, which makes me wonder if your server is perhaps not processing the SSL/TLS encryption correctly. For instance, if your server is not setting TIdSSLIOHandlerSocketBase(AContext.Connection.IOHandler).PassThrough=False when a client connects.

pablofabianromero commented 7 months ago

My dear and Blessed Remy.

Your existence on this Earth is a blessing from heaven.

I owe you 900,000 beers.

That was it: the server and the client needed to indicate exactly that. You save my life. Problem Solved.

Luv'u, bro.