TWSocket.Connect

From Overbyte
Revision as of 18:07, 10 April 2006 by Sysop (talk | contribs)
Jump to navigation Jump to search

This method try to connect to remote Server.

Whenever OnSessionClosed event will be fired is case on problem during connection, you may get exception error just right after the .Connect if you did not (re)filled .Port and .Addr values before calling .Connect or you'll raise an exception.

You may also get an exception if you have some local socket problem (i.e a blocking firewall not allowing your application to create outgoing socket).

Here is a sample of connecting, you can also read .OnSessionClosed to get more info about this sample.

    WM_CONNECT2SERVER:
    begin
      try          
        if WSocket2Server.State <> wsClosed
        then WSocket2Server.close;
        inc(WSocket2Server.RetryCount);
        WSocket2Server.Port:=StringListConfigFile.Values['ServerPort'];
        WSocket2Server.Addr:=StringListConfigFile.Values['ServerAddr'];
        WSocket2Server.Connect;
      except
        // Yes you may have an error with no SessionClosed
        // For example if a local firewall is blocking socket
        on E: Exception do
        begin
          LogConnector(E.Message);
          if TimeSetEvent(WSocket2Server.RetryDelay,100,@TimeCallBackReconnect,0,TIME_ONESHOT)=0
          then LogConnector('TimeSetEvent creation error');
          // WSocket2Server.RetryDelay may be altered if Server
          // sent some 'server will be off for xxx minutes'
          // just before a clean close
        end;
      end;
    end;