Bjørnar Nielsen wrote:
> I'm using PostThreadMessage to send messages to my thread, but I want
> to interrupt messages that is intended to go to a WSocket-component. 
> 
> The reason is that I'm trying to make my HTTPSrv multithreaded. My
> idea was to intercept Do_FD_ACCEPT, pause the socket, send a custom
> message to another thread where I attach the socket and continue with
> Do_FD_ACCEPT. Is this a good way to achieve this? Or has anyone here
> achieved this in another way? 

I think it is not easily possible like that, since the THttpServer is
not derived from TWSocketServer. IMO, it's easier to either apply a
similar method as shown in demo "ThrdSrv" (V5) or to use/write a 
multi-threaded WSocketServer-class and to change three or four source
lines in the THttpServer so that FWSocketServer becomes multi-threaded.
You should also consider to just move lengthy tasks into worker 
threads, for instance like it's practised in the TFtpServer for 
calculating MD5 checksums from big files (search for
TClientProcessingThread). I prefer the latter, perhaps in
conjunction with a little thread pool.

--
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html



> 
> Regards Bjørnar
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Arno Garrels 
> Sent: 19. mars 2008 10:52
> To: ICS support mailing
> Subject: Re: [twsocket] Cathing window messages for HttpSrv
> 
> Bjørnar Nielsen wrote:
>> I'm using the THttpSrv in a thread, and want to catch the windows
>> message to the server. How is this possible?
> 
> It's safe to use PostThreadMessage() for those custom messages,
> however you must check for msg.Hwnd = 0 in your message pump
> otherwise you risk conflicts with the message-ID numbers ICS v6
> uses internally.
> 
>> 
>> My messagepump int the execute of the thread is like this:
>> 
>> while(!Terminated && GetMessage(&msg, 0, 0, 0))
>> 
>> {
>> 
>>    switch(msg.message)
>> 
>>    {
>> 
>>        case WM_CUSTOM_SET_SERVER_SETTINGS:
>> 
> [..]
> 
>> How can I catch FD_ACCEPT and other messages and get the receiving
>> control for this message? I Use ICS V6 and don't understand how the
>> TIcsWndHandler works. Does anyone have examples for this?
> 
> You could override the WndProc() procedure of a component and trap
> FMsg_WM_ASYNCSELECT. Have a look at TCustomWSocket.WMASyncSelect()
> for an example of how to catch FD_ACCEPT.
> 
> --
> Arno Garrels [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
> 
> 
> 
> 
> 
> 
>> 
>> 
>> 
>> 
>> Regards Bjørnar
>> 
>> 
>> No virus found in this outgoing message.
>> Checked by AVG.
>> Version: 7.5.519 / Virus Database: 269.21.7/1332 - Release Date:
>> 17.03.2008 10:48
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
> 
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1334 - Release Date:
> 18.03.2008 20:52 
> 
> 
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.0/1341 - Release Date:
> 24.03.2008 15:03 
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to