On Oct 18, 2007, at 05:36, Ana Onarres wrote: > I am confused. Clients is the property of TWSocketServer, not of > ClientThread. ClientThread extends TThread, for controling every > connection, every client socket.
Anne, I was talking about the TWSocketThrdServer, not the TWSocketServer, I am very sorry for the confusion. I thought that since you were determined to using threads, why would you not use the component that was designed for this, encapsulating all that the ThrdSrv_V1/V2 examples show? The examples for ThrdSrv_V1 and ThrdSrv_V2 where written before TWSocketThrdServer was made. ThrdSrv_V3 was then made for the TWSocketThrdServer. Apparently the interface of both components is different and I am sorry for causing confusion on this. I am not familiar with TWSocketServer in a multi-threaded use, but the demo applications show how to use it. To send data to all the clients, you must be aware of thread synchronization: each client is running on its own ClientThread, so it is not safe to access them from the main thread using the TWSocket.Clients collection. The first demo shows this, I believe, by sending the Welcome Banner from the main thread. Are you absolutely sure that you need multiple threads for your clients? I encountered the same complexity a week ago and was finally convinced that my application did not need the multiple threads, and switched to using TWSocketServer on a single thread (my application spawns a worker thread for the server, but it runs within that context), and everything became easier and simpler -- yet its still fast and able to cope with many hundreds of concurrent clients. If your clients need to do some very extensive processing that may block the rest of the clients, then perhaps it would be better to have the client itself spawn a worker thread to perform the processing. That way the synchronicity issues are contained within the client, instead of having to complicate the server with various threads. > If the server has connected three clients, is there 3 TThrdSrvClient > or 3 ClientThread? > TThrdSrvClient is: There are three of each: Three ClientThreads, each with one TThrdSrvClient attached. The TWSocketThrdServer component can handle more than one client per thread, so depending on your configuration, all clients may be attached to the same thread, or to different ones (the default is one client per thread). > Is there some help page over how to use the TWSocketServer? I know this sounds trite, but the demo applications and the source code, are your best help. Not to mention this very list. There have been various documentation projects started in the past, and most of them are available from the OverByte web site, but none of them are complete or comprehensive. There is currently a Wiki project, but it needs volunteers, and it is far from completed. Of course, you are welcome to contribute to the Wiki and post instructions, samples, or help topics based on your experiences. Just contact Francois for an account. dZ. -- DZ-Jay [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be