TX Library Help – Version: 00173a, Revision: 173
|
Первое, что вы должны сделать при использовании библиотеки TXNetwork это указать компилятору, что нужно присоединить файл Ws2_32 (который используется Winsock'ом). Делается это просто: в настройках линкера укажите файл Ws2_32 (без расширения). Настройки линкера находятся в (Code::Blocks)"Settings\Compiler...". Далее выбираете вкладку "Linker Settings", и смотрите в левое окно: Если есть что-то похожее на "Ws2_32", то все хорошо. Иначе нажмите кнопку "Add", и введите это название. Нажмите "ОК". Все, вы готовы использовать TXNetwork. Также можно указать опцию компилятора -lWs2_32
#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 #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 #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 // 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;