Jump to content

FPiette

Members
  • Content Count

    1120
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by FPiette

  1. Calling connect is not enough to send a mail. See the sample program, seen the code behind "all in one" button.
  2. FPiette

    THttpCli - retry request

    Colek, I would create a new component instead of modifying the ICS one. You can either inherit from THttpCli component or inherit from TComponent and embed a THppCli to do what needs to be done. Either way has pros and cons but both are exactly what object oriented programming is all about. Think about moving the logic behind your application into a component instead of putting it into a TForm.
  3. Do you have full source code for the add-ons you use? If yes, it should be fairly easy to port the code to the current Delphi version. I have done that a lot of times with great success. Without source, you have to replace the old add-ons by current version if it exists or by other ones. This may be more difficult. Advice: never use an add-on without full source code. btw: If you want to discuss porting your code, you should post in another forum, maybe this one https://en.delphipraxis.net/forum/4-vcl/ if we are talking about VCL.
  4. FPiette

    Windows DNS Server

    Well, again this one is fixed. Only those omitting to apply ALL updates are at risk. And by the way, this is not related to DNS which is the subject of this conversation.
  5. FPiette

    Windows DNS Server

    I checked a few of those and all I have checked are fixed by Microsoft. The recomandation is simply to get ALL updates from Microsoft as soon as they are published (Just turn on auto update. Tht's what I have always done).
  6. FPiette

    Windows DNS Server

    I never had this need.
  7. FPiette

    SVN server updated

    I would suggest to use TortoiseSVN which is a subversion GUI tool perfectly integrated in Windows Explorer context menu. Much easier to use than SVN command line. In the command line, you should add usercode and password. Type "svn help co" to get help. Usercode and password are both "ics" in lower case with quotes. Try this command line: svn checkout --username ics --password ics svn://svn.overbyte.be/ics/trunk
  8. FPiette

    SVN server updated

    We all should thank Angus for his huge work in ICS world. Angus, I say THANK YOU!
  9. Before stating remote is down, you'd better do a few pings and decide the remote site is down only if all pings are failing or at least a given percentage of the pings failed. Please be aware that it is prossible to completely shutdown ping response in a system. If you control both servers then you can use ping. If you don't, be preapared to use an alternative the day ping are disabled.
  10. Please clarify your question: in my mind,"send" and "download" are not compatible. It is either "receive" and "download" or "send" and "upload". Have a look at various demos delivered with ICS distribution.
  11. You two involved PC are on a LAN? Same segment or is there routers or switches? Ping is not a reliable protocol, one ICMP message can be lost in case of high trafic. If you loose one ICMP message per one thousand, it looks acceptable to me.
  12. When it fails, try using command line ping to see if it fails as well AT THE SAME MOMENT.
  13. It is also possible to use a TTimer for desired timeout and call Albort against the socket waiting for connection.
  14. Using madExcept is of great help regarding accessing invalid memory, buffer overflow, freed memory or object and so on. I recommand using it for such issue.
  15. Internal error are produced when the compiler is confused (Read: bugged). Sometimes it result from earlier error. The best thing to do is quit the IDE, manually delete all DCU (I don't remember if D7 already had the "clean" function. If yes, use it before stopping the IDE). The restart the IDE and compile everything. If this doesn't work, maybe you should use a newer compiler. Now there is the "community Edition" which is "pro" version, free of charge for everyone including business (Up to US$5000,- gross revenue).
  16. On client side, you have the event OnSessionConnected triggered with an error argument being zero. If client can't connect to server, you still have the same OnSessionConnected event triggered but with an error argument not zero, for example 10061 which means the server is not running at the IP/Port/protocol specified. Use state property only for display or log. Use events for everything that "happens" such as connection established or closed or data available and more. Read the comment "About multithreading and event-driven" in OverbyteIcsWSocket.pas (The main source of the sockect component).
  17. FPiette

    Remote Desktop with ICS

    @jbWishmaster did you finally solved your problem? If so, what was the real issue, what have you done to solve it? Having the solution in the message thread is very useful for others...
  18. I wish you all Happy Holidays & Merry Christmas! François Piette
  19. FPiette

    THttpServer port number...

    The component doesn't do that by itself but has a property to select the port to listen to. So just assign it to the value you need before calling start. Please note that the client must know the port to connect so I don't understand why you want a random port! Unless you used the term "random" instead of "custom".
  20. FPiette

    ICS Wish List

    In my opinion, OAuth1 (Twitter), IMAP (mail client and server) and Linux (Including Android) are the most demanded. For Linux/Android, I have already been asked a lot of time. I always answered: when I need it for my own business or if someone want to fund the project. Remember ICS-SSL was born because I wrote it when a group of supporters agreed to pay a little fee to fund the development. That was a success as you know. After the initial period of exclusivity for those having paid, ICS-SSL is now merged with ICS.
  21. Would be interesting if you explain what was the real issue. other user will find your message and will be happy with your explanation. Thanks.
  22. FPiette

    TCP File Server

    In any application, any time-consuming operation can be implemented without thread by correctly making use of cooperative multitasking of Windows. That is use asynchronous operation. Any computing time taking significant time has to be divided in small chunk allowing other processing to take place. Any blocking task can be rewritten to work asynchronously by using worker threads. If you have to support a large number of concurrent and active clients, you'd better have a sufficient hardware. A simple desktop PC won't support the load. Use a real hardware server with multiple Intel Xeon and a huge memory (Something like 128GB of RAM look OK). Also think about network bandwidth and disk I/O throughput. Not all 1Gbps Ethernet adapter are actually able to sustain that speed. Maybe a 10Gbps network card is required with sufficient power on the adapter itself. About the disk, think about SSD but pay attention that they are not all equals, and if you need hard disks, they are also not all equal! Use 15krpm and high speed SAS disk adapter with lot of cache. Don't forget that RAID takes time. Use RAID1 which is less efficient that RAID5 in term of usable capacity, but is much faster. To summarize, you have to write the best software and run it on the best hardware to get the best performances. It is likely that the overall performance will be similar to the weakest piece in the chain.
  23. Just checked right now. I can drag and drop a TWSocket (Or other) from component palette to the form.
  24. FPiette

    Correct way of using LineMode?

    Loooong time ago, back in 1996 when I started ICS, a went to that way. I quickly stopped it because it makes things much more complex for both the component developer and the component user. Since then, I am still happy to use delegation instead of inheritance. Inheritance is largely used in ICS, see TWSocket itself as an example. But delegation has to be used when it has to!
  25. FPiette

    Correct way of using LineMode?

    This is probably the best thing to do if you want to spare learning the inner working of TWSocket. All ICS components does just like that: create a new class and have one or more field of TWSocket type. By the way, given the log you showed, you are playing with HTTP protocol. Why not use ICS HTTP component instaed of TWSocket. This is the best choice unless you plan to reimplement HTTP. ICS HTTP component if really powerfull. Rewriting it is probably a huge work.
×