Терминальные окна TCP / IP

Я хочу получить терминал ввода / вывода следующим образом:

-----------------------------
|                           |
|          Output           |
|                           |
|                           |
|                           |
-----------------------------
| Input:                    |
-----------------------------

В настоящее время fork()я использую свой клиентский сокет. Поэтому я предполагаю, что можно использовать родительский процесс, Input:и каждый дочерний процесс будет печатать в область вывода, когда они закончат обработку запроса. Как бы я начал заниматься этим?

c,sockets,io,

0

Ответов: 1


0

Я не уверен, понимаю ли я вашу проблему или нет, но вы думаете об этом? Если нет, то извините.

void printLength(int length);
void printWidth(int length, int input, int output, bool printInput, bool printOutput);
int lengthIO(unsigned x);
void IOterminal(int sizeOfTerminal, int inputValue, int outputValue);

void main()
{
    IOterminal(30, 9999, 5555);
}

void IOterminal(int sizeOfTerminal, int inputValue, int outputValue)
{
    printLength(sizeOfTerminal);
    printWidth(sizeOfTerminal, inputValue, outputValue, false, false);
    printWidth(sizeOfTerminal, inputValue, outputValue, false, true);
    printWidth(sizeOfTerminal, inputValue, outputValue, false, false);
    printWidth(sizeOfTerminal, inputValue, outputValue, false, false);
    printWidth(sizeOfTerminal, inputValue, outputValue, false, false);
    printLength(sizeOfTerminal);
    printWidth(sizeOfTerminal, inputValue, outputValue, true, false);
    printLength(sizeOfTerminal);
}

void printLength(int length)
{
    int i = 0;
    for (i; i < length; i++)
    {
        printf("-");
        if (i == length - 1)
        {
            printf("
");
        }
    }
}
void printWidth(int length, int input, int output, bool printInput, bool printOutput)
{
    int lengthInput = lengthIO(input);
    int lengthOutput = lengthIO(output);
    int i = 0;
    printf("|");
    for (i; i < length; i++)
    {
        if (i > 0 && i < length)
        {
            if (i == 2 && printInput == true)
            {
                printf("Input:%d", input);
                length = length - (lengthInput + 5);
            }
            else if (i == 2 && printOutput == true)
            {
                printf("Output:%d", output);
                length = length - (lengthOutput + 6);
            }
            else
            {
                printf(" ");
            }
        }
    }
    printf("|
");
}
int lengthIO(unsigned x) {
    if (x >= 1000000000) return 10;
    if (x >= 100000000)  return 9;
    if (x >= 10000000)   return 8;
    if (x >= 1000000)    return 7;
    if (x >= 100000)     return 6;
    if (x >= 10000)      return 5;
    if (x >= 1000)       return 4;
    if (x >= 100)        return 3;
    if (x >= 10)         return 2;
    return 1;
}

Окно терминала

с, розетки, IO,
Похожие вопросы
Яндекс.Метрика