Jump to content

FPiette

Members
  • Content Count

    1120
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by FPiette

  1. Hello, As you are reading this message, you probably use ICS. Good! But have you taken time to register your ICS copy? ICS is freeware but to use it, you must register it. Registration is very simple: just mail a [real, paper] picture postcard to the author (me). You can find instructions in the readme8.txt file in ICS distribution. Thanks. PS: If you already sent your picture postcard, simply ignore this message. If you want to know if I received it, then you must tell me by email when you sent it, from which country and what the picture look like (I have several thousands postcards!).
  2. FPiette

    ICS registration

    @Bob4231, don't do that. I'm only interested in real picture postcard. If you really like ICS, maybe you'll take time to find a picture postcard in a nearby town. I think they are sold everywhere in the world. BTW: I already have more than 4000 postcards!
  3. Please be more specific about the error and where it occurs. You should run your program Under the debugger if the error is an exception.
  4. I think you are using a quite old ICS version because currently, all ICS as well as Midware files have their name prefixed by Overbyte. Be sure to install latest ICS first. And make sure old ICS is not available anymore (It can stay on disk but shall not be found using search path of any kind). You have to install ICS as explained in ICS documentation. Do not copy ICS files from ICS folder to Midware folder. Instead add to your Delphi global search path the source folder of ICS as well as the source\include. Only then you can build Midware. I'm not sure but you should probably also modify OverbyteIcsDefs.inc to make sure USE_SSL is not defined when building Midware which do not require SSL. I mean I'm not sure ICS distribution has USE_SSL symbol defined or not.
  5. FPiette

    Hang problem

    You should also monitor the session closed event. If your client stop reading data without disconnecting, the timeout can be very long. I suggest you simply abort (Not close) the connection for that client.
  6. FPiette

    ICS registration

    SSL is included in the standard ICS distribution completely free of charge as the whole ICS. The fee date back a long time, when there was a kind of sponsoring of ICS users needing SSL support. They had the product before it became free. As I said, now there is only a single ICS which include SSL support.
  7. You are right. I updated the zip file. Please download again and let me know if it works now. Thanks.
  8. FPiette

    Hang problem

    You can put data into the sendbuffer (That is call one of the send method). In OnDataSend event Handler, you set a flag to true and you reset it when you call send. Initialize the flag to true when the connection is established. Before calling one of the send methods, check the flag. The question is what will you do when the client doesn't receive fast enough ? Just throw away the data ? If you buffer it, then you'll have again a problem of too much data eating all available memory.
  9. See the announce message there: https://en.delphipraxis.net/topic/969-midware-new-update-available-for-latest-delphi-and-ics/
  10. Hello Midware fan, I have updated Midware for the latest Delphi 10.3.1 Rio compiler and for the latest ICS version. You can download from http://www.overbyte.eu/eng/products/midware You can find documentation at http://wiki.overbyte.eu/wiki/index.php/midware If you have any question, please start a new topic and be sure to add "[Midware]" in front of the title line. Have a nice day coding with Delphi
  11. FPiette

    Remote Desktop with ICS

    I understood that your first test which succeeded was using a set of computers and a given network and that the second test use a different network - a company network- and probably other computers. IMO, with the second test, you have something blocking in the network managed by the company. The routs between the two computers may be complex inside a company, with routers, bridges, WAN, firewall and more. I suggest you get a simple Ethernet switch and connect the two computers under test directly on that switch or directly connect the two computers at each end of a single cable (a cross cable if the Ethernet cards are not able to sense I/O). Then verify that the software works as expected. If this succeed, it means everything is OK with the two computers and the software. Be sure that the two computers have their IP address in the same range (Use IPConfig to check that). Then connect the two computers on the company network and test if the software still work. If it doesn't then something in the company network is blocking the traffic you want to create (This is frequent in a company network where security is a concern). If it doesn't work, ask the system administrator. Note that the problem is even more complex if the two computers are separated by a router. All those problems are NOT related to ICS. They are just normal behaviour of a LAN/WAN based on IP protocol family.
  12. FPiette

    TSslHttpCli

    Thanks for feedback;
  13. FPiette

    Remote Desktop with ICS

    Check the firewall rules on each local computer, and check the firewall in the company infrastructure. Ask the system administrator to open the port you are using and to allow the application and routing of the traffic.
  14. Delphi 7 is too old. Using the current version available from my website. The new - unpublished yet - version is for recent Delphi compiler. Or upgrade your Delphi to the latest version (Delphi 10.3.1 Rio) you'll have tremendous enhancements compared to Delphi 7.
  15. FPiette

    TSslHttpCli

    You should run your application under the debugger which will show where the exception occurs. This is what is needed to understand what happen.
  16. FPiette

    TCP Receiving Binary File

    I have fixed the demo to work with all Unicode enabled Delphi versions (2009 and up). It will no more work with older ascii only versions. I have tested with Delphi 10.3.1 rio. The file sendfile.zip has been updated on the website, you can download again from usermade page at http://www.overbyte.be Let me know if it works for you.
  17. FPiette

    TCP Receiving Binary File

    The problem with this demo is a Unicode issue. The author made it with a Delphi version before Unicode was introduced. This demo assume a char in an AnsiChar (8 bits) while for years char are Unicode (16 bits). This is not difficult to fix. The buffer used to send/receive binary data must by an array of byte instead of an array of char. For the filename, you have to choose if you want to send Unicode filename or ASCII filename and convert appropriately. Do you need more help to fix the sample? François Piette ICS Authour Embarcadero MVP
  18. FPiette

    TSslHttpCli

    You can find it on the download page at the wiki: http://wiki.overbyte.eu/wiki/index.php/ICS_Download#Version_Control_System François Piette Embarcadero MVP
  19. I have Midware updated for latest Delphi 10.3.1 Rio. Not tested with previous releases but should work as not much code has been changed. If people are interested I could create a new distribution. François Piette Embarcadero MVP
  20. Sorry to hear that. I tried right now and it works perfectly. According to the message you get, this message comes from your "Web Anti-Virus". I don't know this product but for sure it is the culprit. I suggest you disable it. Also note that the source code is attached to my first message in this thread.
  21. It is already available in my blog for years: http://francois-piette.blogspot.com/2013/04/inter-process-communication-using-pipes.html
  22. I have done an intensive debug session and found the issue although I don't understand why it works with older Delphi versions. At line 2710, where the server hang, we have the code: Result := GetOverlappedResult(FPipe, FOlapRead, FRcvRead, TRUE); I simply changed the last argument by FALSE like this: Result := GetOverlappedResult(FPipe, FOlapRead, FRcvRead, FALSE); And now it works! That last argument when TRUE tells GetOverlappedResult to wait until completion. If FALSE, it returns immediately with whatever data is available, setting FRcvRead variable with actual number of bytes read. Since we only go to that code line when data is available, because of WaitForMultipleObjects called at line 2939, we can safely don't wait for more data. I will do more testing with the actual - real world - application using that code. In case the issue persist, I will report it here. Thanks to all having participated in this conversation. -- François Piette Embarcadero MVP
  23. Hi Allen, Thanks a lot for having taken time to look for my issue. I gave a try to your solution and unfortunately it doesn't work here. I wonder why, if it is a Windows update issue, the application compiled with an older Delphi is working!? I have read the KB2918614 update description designated as the culprit by the article you mention. I don't see anything related to the present issue. I fear about broking something elsewhere if a rename the folder as described. Best regards, François Piette
  24. FPiette

    Remote Desktop with ICS

    The main difference between the TCP/IP component you currently use and ICS is that ICS if fully asynchronous and event driven while the one you use is blocking. Using ICS, each method you call is merely a request to do the operation. You get back control almost immediately while the operation you requested (connect, send,...) is occurring in the background automatically. When it is done, you get an event (OnSessionConnected, OnDataSent, OnDataAvailable and others...). There are a lot of simple samples delivered with ICS. Have a look at some of them. For example OverbyteIcsTWSChat.dpr which is both a client and a server. François Piette Embarcadero MVP
  25. OK, Sherlock and Alexander confirm it doesn't work. Sorry for the other, but I fear they confused being able to compile (That works everywhere) and correct execution (Message sent from client is visible on server). Now the real question: what has changed in Delphi that make it fail now while it worked for year, until Delphi 10.1 in fact. I think it ois a threading issue but not sure. I tried to debug the code but was not able to see anything obviously wrong (And it isn't since it worked up to Delphi 10.1 so it is clearly soothing related to Delphi itself). Any help to find out the issue is really appreciated. Regards, François Piette Embarcadero MVP
×