Exemple #1
0
        void DoWork()
        {
            int    i = 0;
            string recievedData;

            byte[] buffer;
            while (!_shouldStop)
            {
                buffer = new byte[Constants.bufferLength];
                i      = _clientSocket.Receive(buffer);

                if (i > 0)
                {
                    recievedData = StringBytesConverter.GetString(buffer);

                    ConsoleTimeLogger.WriteLine("< " + recievedData, Console.Out);
                    switch (recievedData)
                    {
                    case Commands.exitClient:
                        Stop("client exited.");
                        KillChildProcesses(_cmdProcess);
                        break;

                    case Commands.stopClient:
                        Stop("client stopped.");
                        break;

                    case Commands.restartServer:
                        Stop("client wished to stop me.");
                        break;

                    case Commands.clientConnected:
                        _clientSocket.Send(StringBytesConverter.GetBytes(Constants.uiServerGreeting));
                        break;

                    case Commands.emptyLine:
                        _clientSocket.Send(StringBytesConverter.GetBytes(recievedData));
                        break;

                    default:
                        if (Channels.IsAvailableChannel(recievedData))
                        {
                            StartDumpingAndForwardingStream(recievedData);
                            _clientSocket.Send(StringBytesConverter.GetBytes(Commands.translationStarted));
                        }
                        else
                        {
                            _clientSocket.Send(StringBytesConverter.GetBytes(recievedData + Constants.uiServerDontKnow));
                        }
                        break;
                    }
                }
            }
        }
Exemple #2
0
        void DoWork()
        {
            string sendData;
            string recievedData;

            byte[] buffer;
            bool   beginning = true;

            while (!_shouldStop)
            {
                buffer = new byte[Constants.bufferLength];

                if (beginning)
                {
                    sendData  = Commands.clientConnected;
                    beginning = false;
                }
                else
                {
                    sendData = EnterCommand();
                }

                _socket.Send(StringBytesConverter.GetBytes(sendData));
                if (sendData == Commands.exitClient)
                {
                    Kill();
                    break;
                }

                _socket.Receive(buffer);
                recievedData = StringBytesConverter.GetString(buffer);

                Console.WriteLine("<" + recievedData);
                switch (recievedData)
                {
                case Commands.translationStarted:
                    Launch();
                    break;

                case Commands.serverStopped:
                    Stop(Commands.serverStopped);
                    break;

                case Constants.uiServerGreeting:
                    OnServerGreeting();
                    break;

                default:
                    break;
                }
            }
        }