private bool Connect(LoggerDelegate logger, object logContext)
{
if (_socket != null)
return true;
try
{
// new socket
_socket = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
// connect
int port;
int.TryParse(_config, out port);
_socket.Connect("localhost", port);
// set non-blocking
//_socket.IOControl(IOControlCode.NonBlockingIO, BitConverter.GetBytes(1), null);
_socket.Blocking = false;
if (Agent.Connect.VerboseLogging)
{
if (logger != null) logger(GraphdatLogType.InformationMessage, logContext, "graphdat info: socket connected '{0}'",
_config);
}
return true;
}
catch (Exception ex)
{
Term(logger, logContext);
if (!_lastwaserror || Agent.Connect.VerboseLogging)
{
if (logger != null) logger(GraphdatLogType.ErrorMessage, logContext,
"graphdat error: could not connect socket '{0}' - {1}", _config, ex.Message);
_lastwaserror = true;
}
}
return false;
}