예제 #1
0
    private static bool StartClient(IPEndPoint endPoint)
    {
      if (_client != null)
        return false;

      ClientMessageSink sink = ReceivedMessage;

      _client = new Client(endPoint, sink);
      _client.CommsFailureCallback = CommsFailure;
      _client.ConnectCallback = Connected;
      _client.DisconnectCallback = Disconnected;

      if (_client.Start())
      {
        return true;
      }
      else
      {
        _client = null;
        return false;
      }
    }
예제 #2
0
    /// <summary>
    /// Connects the IR client to the host specified by the parameter <paramref name="endPoint"/>.
    /// </summary>
    /// <returns><c>true</c>, if the client could successfully be started, else <c>false</c>.</returns>
    public bool StartClient(IPEndPoint endPoint)
    {
      ServiceRegistration.Get<ILogger>().Info("IrInputPlugin: Connect to service ({0}:{1})", endPoint.Address, endPoint.Port);
      if (_client != null)
        return false;

      ClientMessageSink sink = ReceivedMessage;

      _client = new Client(endPoint, sink)
        {
            CommsFailureCallback = CommsFailure,
            ConnectCallback = Connected,
            DisconnectCallback = Disconnected
        };

      if (_client.Start())
        return true;
      _client = null;
      return false;
    }
예제 #3
0
    internal static bool StartClient(IPEndPoint endPoint)
    {
      if (_client != null)
        return false;

      _notifyIcon.Icon = Resources.Icon16Connecting;
      _notifyIcon.Text = "Translator - Connecting ...";

      ClientMessageSink sink = ReceivedMessage;

      _client = new Client(endPoint, sink);
      _client.CommsFailureCallback = CommsFailure;
      _client.ConnectCallback = Connected;
      _client.DisconnectCallback = Disconnected;

      if (_client.Start())
        return true;

      _client = null;
      return false;
    }
예제 #4
0
    internal static bool StartClient(IPEndPoint endPoint)
    {
      if (_client != null)
        return false;

      ClientMessageSink sink = new ClientMessageSink(ReceivedMessage);

      _client = new Client(endPoint, sink);
      _client.CommsFailureCallback = new WaitCallback(CommsFailure);
      _client.ConnectCallback = new WaitCallback(Connected);
      _client.DisconnectCallback = new WaitCallback(Disconnected);

      if (_client.Start())
      {
        return true;
      }
      else
      {
        _client = null;
        return false;
      }
    }
예제 #5
0
        //------------------------------------------------------------------------------------------------------------------
        #region methods

        /// <summary>
        /// Connect the IRSS client to an IRSS server.
        /// </summary>
        /// <param name="host">Computer running the IRSS server to which the client should connect</param>
        /// <param name="millisecondsTimeout">Wait for the connection to succeed for that many milliseconds</param>
        /// <returns>true if the connection is successful</returns>
        public bool Connect(string host = "", int millisecondsTimeout = 10000)
        {
            // If connected, first disconnect
            if (Connected)
            {
                if (ServerHost == host)
                {
                    LogWarn("Already connected to " + ServerHost);
                    return true;
                }
                else
                {
                    Disconnect();
                }
            }

            // reset connection states
            Connected = false;
            if (host == "") host = ServerHost;
            if (host == "") host = "localhost";


            IPAddress serverIP = Network.GetIPFromName(host);
            IPEndPoint endPoint = new IPEndPoint(serverIP, Server.DefaultPort);

            ClientMessageSink sink = ReceivedMessage;

            irss = new Client(endPoint, sink);
            if (irss == null)
            {
                LogErr("Failed to open connection to " + host);
                return false;
            }
            irss.CommsFailureCallback = CommsFailure;
            irss.ConnectCallback = SocketConnected;
            irss.DisconnectCallback = SocketDisconnected;

            bool ok = irss.Start();

            if (ok)
            {
                ServerHost = host;

                // Wait for the connection to occur.
                if (!_connectedEvent.WaitOne(millisecondsTimeout))
                {
                    LogErr("Failed to connect to " + ServerHost);
                    return false;
                }

                LogInfo("Client connected to " + host);
                Connected = true;
            }

            return ok;
        }
예제 #6
0
    private void StartClient(IPEndPoint endPoint)
    {
      if (_client != null)
        return;

      _client = new Client(endPoint, ReceivedMessage);
      _client.CommsFailureCallback = CommsFailure;
      _client.ConnectCallback = Connected;
      _client.DisconnectCallback = Disconnected;

      if (_client.Start())
      {
        return;
      }
      _client = null;
    }