Hello, it seems that I need a rewrite of this part of my project from start on.
The idea is to have one dll for encapsulating all communication stuff and another sitting on top of it for handling of my special protocolls. because I have more than one I can exchange these dlls sitting in top as needed. The application's use of sockets is fairly static: at start the needed number of sockets will be created, they will be used and at exit of the programm they will be closed. Normally no opening and closing in between is required. My new idea for the communication dll is as follows: (this will only be the sending side so far, if that works I will build the receiving one - these sockets can't be used for receiving just now because the other hardware is "hardwired" to some adress which is one central receiving adress for all connections altogether) - it gets a dedicated thread which only sits in its execute method doing the following things: - wait for requests from outside to create a new socket (it will be created and added to the dll internal connection list, the outside will get a numeric handle, with that the outside can send data) - wait for requests to close a given socket (named through the numeric handle) - polling windows messages for ICS - when the thread gets the signal to finish itsself, it can look up in the connection list if there are any open sockets left which will get closed one after another then - if no sockets exist, it is idle and should sleep as much as possible The questions are: - is this concept okay? (won't crash or hang if implemented correctly) - how to make the message pump in the thread? I can't simply call socket.processmessages, because I would have to look up a socket every time in the list - can the message pump be constructed without the help of socket.processmessages? like this: while not terminated do begin // check for sockets to create // check for sockets to close // message pump like this while messages exist and not timeout do begin fetch next message process it end; end; - if not, would it be sufficient to call processmessages only for one of these sockets? Greetings Markus -- 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