Hello.
I have a question that relates to doing basic client connection housekeeping from a different thread than the TWSocketServer's thread. System Overview: I have a server application that uses a TWSocketServer. The TWSocketServer is located on the main form, thus it is in the main thread. All inbound packets are handled from the app's main thread by this TWSocketServer. If an inbound packet requires a CPU intensive process, an event is queued by a thread pool manager for handling those processes out-of-line. The threaded tasks within the thread pool may generate response packets from their own thread space. This is all working wonderfully. Now, I need to implement some basic housekeeping on the client sockets. Basically, this entails a simple pattern or iterating through all the client sockets periodically and checking for dead sockets and other types of issues. I have a KeepAlive packet system that simply pings this server from the client periodically and updates LastTransmit / LastReceive time flags. Also, for security purposes, initial secure channel handshaking mandates that untrusted or unpromoted connections be dropped within a certain time length. So, I could simply implement the housekeeping in the main thread with a basic TTimer event and scan the client sockets there from within the main thread itself. However, I am concerned about causing a performance slowdown when this occurs, by scanning from within the main thread. However, I could also spawn a thread for doing this housekeeping. Question: Is there a thread safe pattern or approach for scanning the client sockets in the TWSocketServer collection from a different thread? Does a specific client socket need to be locked somehow when checking it? Or is this even necessary or relevant? Or would it just be best to scan from within the app's main thread? The client sockets are persistent sessions and I do not expect to have more than 200 to 300 on a particular server, although that limit is not currently decided. Just wondering what your advice would be for which direction to take: Main thread or separate thread for housekeeping chores? Thanks much! Love ICS! Hoby -- 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