Ejemplo n.º 1
0
        /// <summary>
        /// Handles socket status changes for the secure server.
        /// </summary>
        /// <param name="server">The server that had a socket change event.</param>
        /// <param name="clientIndex">The index of the client who's socket connection changed.</param>
        /// <param name="serverSocketStatus">The new socket status.</param>
        private void SecureSocketStatusChange(SecureTCPServer server, uint clientIndex, SocketStatus serverSocketStatus)
        {
            if (serverSocketStatus != SocketStatus.SOCKET_STATUS_CONNECTED)
            {
                connectedSocketIndexes.Remove(clientIndex);
            }

            if (serverSocketStatus == SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY ||
                serverSocketStatus == SocketStatus.SOCKET_STATUS_BROKEN_REMOTELY)
            {
                if (startRequested)
                {
                    server.WaitForConnectionsAlways(SecureClientConnectionCallback);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Starts the secure server.
        /// </summary>
        /// <param name="port">The port the server should be started on.</param>
        private void StartSecureServer(int port)
        {
            if (secureTcpServer != null)
            {
                secureTcpServer.SocketStatusChange -= SecureSocketStatusChange;
                secureTcpServer.DisconnectAll();
                connectedSocketIndexes.Clear();
                secureTcpServer = null;
            }

            CrestronConsole.PrintLine("Starting secure server.");

            secureTcpServer = new SecureTCPServer(IPAddress.Any.ToString(), port, 1024, EthernetAdapterType.EthernetUnknownAdapter, 10);
            secureTcpServer.SocketStatusChange += SecureSocketStatusChange;
            secureTcpServer.WaitForConnectionsAlways(SecureClientConnectionCallback);
        }