-
Content Count
1196 -
Joined
-
Last visited
-
Days Won
16
Everything posted by FPiette
-
This is how Delphi and Windows works. Anything related to Windows messages and many other things need to be created/destroyed within a thread's context not the thread constructor. This is because a thread constructor run on the context of the calling thread, which obviously not the thread under construction. If you had given a look at ICS multihread samples, you'd known...
-
TSmtpCli does not send the e-mail ?
FPiette replied to chmichael's topic in ICS - Internet Component Suite
Calling connect is not enough to send a mail. See the sample program, seen the code behind "all in one" button. -
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.
-
Delphi 5, ICS (version 1.26) Sending Header Information
FPiette replied to OzRob's topic in ICS - Internet Component Suite
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. -
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.
-
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).
-
I never had this need.
-
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
-
We all should thank Angus for his huge work in ICS world. Angus, I say THANK YOU!
-
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.
-
filename for download file THttpServer
FPiette replied to lunnar's topic in ICS - Internet Component Suite
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. -
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.
-
When it fails, try using command line ping to see if it fails as well AT THE SAME MOMENT.
-
wsConnected triggered even if client not connected
FPiette replied to mitzi's topic in ICS - Internet Component Suite
It is also possible to use a TTimer for desired timeout and call Albort against the socket waiting for connection. -
[BUG] HTTPS support in 64bits - Access Violation
FPiette replied to Marcelo Jaloto's topic in ICS - Internet Component Suite
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. -
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).
-
wsConnected triggered even if client not connected
FPiette replied to mitzi's topic in ICS - Internet Component Suite
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). -
@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...
-
I wish you all Happy Holidays & Merry Christmas! François Piette
-
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".
-
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.
-
TSslHttpCli 404 can't resolve hostname to IP address
FPiette replied to DarkDucke's topic in ICS - Internet Component Suite
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. -
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.
-
Just checked right now. I can drag and drop a TWSocket (Or other) from component palette to the form.
-
Correct way of using LineMode?
FPiette replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
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!