Anton Sviridov wrote: > So, if I want to implement several sockets in a single threads, how > do I perform a message loops on each of them?
Only one message loop is required per thread. If you write your own message loop like below you would be able post and handle custom messages sent with PostThreadMessage(). procedure TMyThread.MyMessageLoop; var Msg : TMsg; begin while GetMessage(Msg, 0, 0, 0) do // Returns False when it retrieves WM_QUIT begin if Msg.hwnd = 0 then // No destination window handle, let's process our own messages begin case Msg.message of WM_MYCUSTOM: DoSomeThing; else TranslateMessage(Msg); DispatchMessage(Msg); end; end else begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; end; procedure TMyThread.Execute; begin WSocket1 := TWSocket.Create(nil); try Assign event handlers and properties.. WSocket1.Connect; // Start the message loop, post WM_QUIT message later to // break the loop. MyMessageLoop; finally WSocket1.Free; end; end; -- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html -- 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