> I'm not a beginner with Delphi but I'm definitely not an expert
> either so I'm really struggling to create a DLL-based WSocket
> client that does what I need.
I wrote an ActiveX DLL about 10 years ago that's still used on my web
site today, doing a reverse DNS look-up on the remote IP address that is
then displayed on the web page.
It uses normal async ICS components, with a message loop to process the
messages. It is designed with a timeout, so it does not delay the page
been displayed too long if there is not DNS response, but it's easy to
change the main message loop to run until a 'disconnect' flag is set.
The ResultList variable is set in the OnDnsLookupDone event.
I have an array of sockets so multiple requests can be handled.
// start lookup
ResultList [mysocket] := '' ;
WSockets [mysocket].ReverseDnsLookup (IPAddr) ;
// now wait for lookup to complete or timeout after X seconds
if (Timeout = 0) or (Timeout > 10) then Timeout := LookupTimeout ;
WaitTickList [mysocket] := GetTickCount + LongWord (Timeout * 1000) ;
while ResultList [mysocket] = '' do
begin
if GetTickCount >= WaitTickList [mysocket] then
begin
try
WSockets [mysocket].Abort ;
except
end ;
ResultList [mysocket] := '(Lookup Timed Out)' ;
end ;
WSockets [mysocket].ProcessMessages ;
Sleep (0) ;
end ;
Angus
--
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