TX Library Help – Version: 00173a, Revision: 173
 ALL  Windows graphics in a sandbox

[TXNetwork] Очень простой пример. Простая пересылка вводимой строки.


Простейшая программа

Первое, что вы должны сделать при использовании библиотеки TXNetwork это указать компилятору, что нужно присоединить файл Ws2_32 (который используется Winsock'ом). Делается это просто: в настройках линкера укажите файл Ws2_32 (без расширения). Настройки линкера находятся в (Code::Blocks)"Settings\Compiler...". Далее выбираете вкладку "Linker Settings", и смотрите в левое окно: Если есть что-то похожее на "Ws2_32", то все хорошо. Иначе нажмите кнопку "Add", и введите это название. Нажмите "ОК". Все, вы готовы использовать TXNetwork. Также можно указать опцию компилятора -lWs2_32

Подключение и инициализация
В коде библиотека подключается как обычно. При использовании с TXLib'ом подключайте TXNetwork до него. Например:
    #include "TXNetwork.h"
    #include "TXLib.h"

Разберем пример пересылки   кота   строки.

Первый файл - файл протокола общения. В нем описываются общие части клиента и сервера, а также сам порядок общения.

    // 1. server -> client: Message (char[Message_size])
    // 2. server <- client: Message (char[Message_size])

    #include "TXNetwork.h"
    #include "TXlib.h"

    const size_t Message_size = 256;

Второй файл - пример клиента. В начале идет подключение файла протокола и определение IP адреса.

    #include "proto.h"
    #define SERVER_IP "localhost" // IP адрес писать здесь. Например: "192.168.0.1"

Далее объявляется main, открывается окно и печатается приветственное сообщение.

    int main()
    {
    txCreateWindow (1024, 768);

    printf ("Searching for server...\n");

Тут начинается использование   черной магии   txNetwork'a. Объявляется и создается сокет.

    TX_SOCKET client = txCreateSocket (TX_CLIENT, SERVER_IP);

Далее создается буфер обмена.

    char str[Message_size] = "";

Теперь принимаем строку от клиента и записываем ее в свежесозданный буфер.

    txRecvFrom (client, str, Message_size);

Выводим полученную строку на экран и вводим ту строку, которую мы хотим отправить серверу.

    printf ("in: %s\nout: ", str);
    scanf ("%s", str);

Отправляем строку серверу и завершаемся.

    txSendTo (client, str, Message_size);

    return 0;
    }

В коде сервера все аналогично, за исключением порядка пересылки строк. Далее представлен весь код примеров.


Файл: client.cpp - код клиента.















// client.cpp

#include "proto.h"

#define SERVER_IP "localhost" //IP адрес писать здесь.

int main()
{
txCreateWindow (1024, 768);

printf ("Searching for server...\n");
TX_SOCKET client = txCreateSocket (TX_CLIENT, SERVER_IP);

char str[Message_size] = "";

txRecvFrom (client, str, Message_size);
printf ("in: %s\nout: ", str);

scanf ("%s", str);
txSendTo (client, str, Message_size);

return 0;
}

Файл: server.cpp - код клиента.













// server.cpp

#include "proto.h"

int main()
{
txCreateWindow (1024, 768);

printf ("Searching for client...\n");
TX_SOCKET client = txCreateSocket (TX_SERVER, "");

char str[Message_size] = "";

printf ("out: ");
scanf ("%s", str);
txSendTo (client, str, Message_size);

txRecvFrom (client, str, Message_size);
printf ("in: %s\n", str);

return 0;
}

Файл: proto.h - общие структуры и данные сервера и клиента.











// proto.h

// 1. server -> client: Message (char[Message_size])
// 2. server <- client: Message (char[Message_size])

#include "TXNetwork.h"
#include "TXLib.h"

const size_t Message_size = 256;