Jump to content

FPiette

Members
  • Content Count

    1200
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by FPiette

  1. What is the error code experience when not able to connect? What does "netstat -t" display on the server when client not able to connect? The number of active socket is limited by the OS. Are you using a Windows Server OS or a Windows Desktop?
  2. FPiette

    Using my custom controls in Design Time

    Probably the documentation will help you: https://docwiki.embarcadero.com/RADStudio/Sydney/en/Registering_Components
  3. FPiette

    No exception handling with server crash

    My experience is that bugs can live for very long time while the application works perfectly. Then you change the compiler or the OS and suddenly the bug surface. One cause of the behavior is that the bug corrupt some memory area that is not used until the new compiler or OS change. Those kind of bugs are among the most difficult to locate.
  4. FPiette

    delphi Twebbrowser Javascript error

    WebBrowser is using Internet Explorer which has been retired by Microsoft. Try with TEdgeBrowser instead. Look at Delphi documentation https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_TEdgeBrowser_Component_and_Changes_to_the_TWebBrowser_Component
  5. FPiette

    No exception handling with server crash

    There is a tool (GFlags.exe) in Windows SDK to help detect heap corruption. Look at the documentation: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags-and-pageheap
  6. FPiette

    No exception handling with server crash

    When the exception occurs, is fault offset always the same (I mean with the same executable)? If it is, try setting a data breakpoint at that address so that the debugger stops when the location is changed.
  7. FPiette

    No exception handling with server crash

    From your description, the heap corruption you experience is a Windows heap corruption, not a Delphi heap corruption. Do you mean the crash happens during the execution of SSL_free(FSsl), or right after it returns or sometimes later? Are you sure FSsl is not corrupted or already freed?
  8. FPiette

    No exception handling with server crash

    I think crash dump contain the call stack. You need to create the map file with Delphi to be able to find what the addresses show in the crash dump are pointing to. Do you have tried with the remote debugger? Do you have tried with WinDbg? https://marc.durdin.net/2015/11/windbg-and-delphi-a-collection-of-posts/ https://github.com/andremussche/map2dbg
  9. FPiette

    No exception handling with server crash

    Probably not easy to do, but have a look at https://forums.ivanti.com/s/article/How-to-set-up-for-capturing-Heap-Corruption-dumping-at-the-point-it-occurs?language=en_US
  10. FPiette

    Printer ip

    You should better explain the PC connection to the ISP and the printer connection to the ISP. Usually, there is a router and that device know the external (public) IP address. I don't think there is a generic API that works with all routers. There are external server that show your external (public) IP on a web page the return to you. For example try this: https://www.whatismyip.com/ If they don't provide an API, you can always use a HTTP component to get the page at that URL and parse the returned HTML to extract your IP address.
  11. Those values in square brackets are custom attributes. Have a look at the documentation : https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Declaring_Custom_Attributes_(RTTI)
  12. FPiette

    ICS V8.69 announced

    I'm happy it worked for you. Maybe you should do a full Delphi reinstall ?
  13. FPiette

    ICS V8.69 announced

    There is no "IgnoreExitCode" parameter in the project. Actually, I don't even know about that parameter in projects or IDE. The error you see comes from MSBuild. The IDE generate a MSBuild script based on project and IDE options. Somehow you have something wrong there. I have no idea what but maybe you have an IDE extension (Sometimes called an IDE wizard or expert) that modify thing on the fly. Maybe there is a bug in the IDE we have not seen ourself. Verify that you installed all IDE updates. In the IDE "about box" you should see "Embarcadero® Delphi 11 Version 28.0.44500.8973" and also "Delphi 11 and C++Builder 11 Update 1" as I do.
  14. FPiette

    ICS V8.69 announced

    On which project does this occur?
  15. FPiette

    String on heap?

    You make thing to complex. Delphi strings are reference counted with copy-on-write.
  16. FPiette

    Which Package to Install

    Look in the "install" directory: you'll find project groups for various combinations of VCL and/or FMX. That is stated in the ReadMe8.txt file. About the two entries in GetIT, that is Embarcadero stuff. This is the same ICS for moth FMX and VCL. They just separated VCL from FMX. I don't know why. And by the way, GetIT is not updated frequently. It is better to download ICS from OverByte webite. See http://wiki.overbyte.eu/wiki/index.php/ICS_Download.
  17. One more note : UDP is - by design - an unreliable protocol. There is nothing in the protocol that check for lost packet or receive on twice. So you must take that into account. On a LAN it rarely loose packets, only when there is a congestion. If you need, you must design your own UDP based protocol that somehow check if data sent is received. If you need to send information reliable, then use TCP which is - by design - a reliable protocol with error detection and correction, re-transmitting if needed. If the protocol can't correct the error, you get an error returned to the application. So my advice is: use UDP from his broadcasting feature to discover the computers and then use TCP to transmit data (peer-to-peer).
  18. There are several possibilities: 1) You get the IP or hostname of each computer in the LAN. You told us you can do it. 2) You write your program with a TWSocket listening on UDP broadcast (See OverbyteIcsUdpLstn demo project). Beside listening, your program will periodically do a broadcast to say "Hey I'm here" (We call that advertizing of service)(See OverbyteIcsUdpSender demo project). That way, each program will know all others on the LAN (UDP broadcast do not go outside of the LAN). One broadcasted message could also say "Hey, who is there?". The receiving program will answer immediately with a message "Hey I'm here". 3) If you need to know the all the PC running your program only once, you can use a port scanner to check all IP on the LAN that listen to a given port. This could be slow or very slow for large LAN. Port scanner can be found for free, Google is your friend. Does it helps ?
  19. Are using the sample code provided with ICS to test or do you use your own code ?
  20. FPiette

    Dynamic class member names

    I think the easiest is to write a post and pre-processor for JSON. After producing the JSON, you pass it thru the post-processor which will obfuscate it. At the other side when you get the obfuscated JSON, you unobfuscate it with the pre-processor.
  21. I can confirm that using ICS demo OverbyteIcsHttpsTst.dproj, the authentification works correctly (Using the credentials that has been sent to me) and the request is sent correctly. The server response with a "server fault", probably because of an incorrect request. The error message is in Czech and I don't read that language. I noticed that the server requires TLSV1.2 or TLSV1.3, nothing else. Now Karel should start from the demo and remove any code he doesn't need, step by step, checking each step to see if he removed something required.
  22. You should also publish your sample here, greying out (but not remove) any credential information.
  23. You can easily find my email in ICS source code.
  24. In your Yamaco1request.txt, I don't see the the same http header lines, including Authorization which is at least needed. Your code is wrong. Please post a complete, small, minimalist example of code which reproduce the problem you have.
  25. In addition to what Angus said, it is possible that the web server make use of cookies and you must handle those properly. A way to debug the issue is to use WireShark to spy on the dialog between SopaUI and the server, and then on the dialog between you ICS powered application and the server. Looking at the differences will surely help.
×