![]() |
TX Library Help – Version: 00173a, Revision: 175
|
[TXNetwork] Библиотека сети тупых художников TXNetwork Подробнее...
Классы | |
| class | TX_SOCKET |
| Cокет TXLib'a. Подробнее... | |
Макросы | |
| #define | TX_BROADCAST "255.255.255.255" |
| Широковещательный IP-адрес TXNetwork'a. | |
| #define | TX_STD_PORT 27050 |
| Стандартный порт TXNetwork'a. | |
| #define | TX_LOCALHOST "127.0.0.1" |
| IP-адрес компьютера, на которм запущен компьютер. | |
Перечисления | |
| enum | sock_type { TX_SERVER = 1, TX_CLIENT = 2, TX_BLOCK = 3, TX_NONBLOCK = 4, TX_NOTYPE = -1 } |
Типы сокета. Подробнее... | |
Функции | |
| TX_SOCKET | txCreateSocket (sock_type type, const char *IP=NULL, int port=TX_STD_PORT, sock_type blocking=TX_BLOCK, bool useTCP=true, const unsigned OueueSize=0x10) |
| Создаёт сокет TXNetwork. | |
| int | txSendTo (TX_SOCKET &to, const void *buf, int size_buf) |
| Функция для отправки данных через сокет | |
| int | txRecvFrom (TX_SOCKET &to, void *buf, int size_buf) |
| Функция для приема данных через сокет | |
| int | txnAssert (TX_SOCKET &asr) |
| Функция для проверки сокета | |
| int | txChangeSockType (TX_SOCKET &to, sock_type blocking) |
| Функция для изменения типа (синхронный - не синхронный) сокета. | |
| SOCKET * | txGetWinSocket (TX_SOCKET &what, bool main) |
| Функция, которая возвращает сокет winsock'а. | |
[TXNetwork] Библиотека сети тупых художников TXNetwork
А также сообщайте мне обо всем (e-mail: vova@txlib.ru).
ws2_32. "ws2_32", то все хорошо. Иначе нажмите кнопку "Add", и введите это название. Нажмите "ОК". Теперь TXNetwork котов готов к работе с вами. -l ws2_32. // 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;
// 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; }
// 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; }
| #define TX_BROADCAST "255.255.255.255" |
Широковещательный IP-адрес TXNetwork'a.
IP-адрес, с которого все компьютеры принимают сообщения, посланые на этот адрес.
См. определение в файле TXNetwork.h строка 160
| #define TX_STD_PORT 27050 |
Стандартный порт TXNetwork'a.
Стандартный номер порта. Учти, юный программист, что на один порт может быть повешен только один сокет!
См. определение в файле TXNetwork.h строка 168
| #define TX_LOCALHOST "127.0.0.1" |
IP-адрес компьютера, на которм запущен компьютер.
IP-адрес твоего компьютера. Он верен только с точки зрения самого компьютера.
См. определение в файле TXNetwork.h строка 175
| enum sock_type |
Типы сокета.
См. определение в файле TXNetwork.h строка 201
| TX_SOCKET txCreateSocket | ( | sock_type | type, |
| const char * | IP = NULL, |
||
| int | port = TX_STD_PORT, |
||
| sock_type | blocking = TX_BLOCK, |
||
| bool | useTCP = true, |
||
| const unsigned | OueueSize = 0x10 |
||
| ) |
Создаёт сокет TXNetwork.
| type | Тип сокета: клиент (TX_CLIENT) или сервер (TX_SERVER). |
| IP | IP-адрес компьютера, с которым будет создан сокет. Если тип сокета type - TX_SERVER, то этот параметр может быть пустой строкой. |
| port | Порт компьютеров, на котором будет "висеть" сокет. |
| blocking | Тип сокета (блокирующий или неблокирующий). |
| useTCP | Если false, то используется протокол UDP. Иначе TCP. |
| OueueSize | Черная магия Размер очереди обрабатываемых клиентов для listen. Use Google, Luck |
txCreateSocket (TX_CLIENT, "192.168.0.1", 107); // Подключаемся по telnet'у
txCreateSocket (TX_SERVER, "", 27051); // Поднимаем сервер своей игры. Ю-ху!
| int txSendTo | ( | TX_SOCKET & | to, |
| const void * | buf, | ||
| int | size_buf | ||
| ) |
Функция для отправки данных через сокет
Cокет TXLib'a.
| to | Сокет, через который нужно передать данные. |
| buf | Буфер, который будет передан. |
| size_buf | Размер буфера. |
TX_SOCEKT game_server = txCreateSocket (...); // Создаем сокет ... int x = 0, y = 0; ... char coordinates[200] = ""; // Создаем строку для параметров sprintf (coordinates, "x = %d, y = %d", x, y); // Печатаем значения параметров в строку txSendTo (game_server, coordinates, 200); // Передаем координаты как текст
struct Point { int x, y }; // Тут поступаем умнее, создаем структуру ... // для хранения координат TX_SOCEKT game_server = txCreateSocket (...); // Создаем сокет ... Point p = { 100, 200 }; // Создаем точку с координатами x = 100, y = 200 txSendTo (game_server, &p, sizeof (p)); // Передаем данные как структуру
| int txRecvFrom | ( | TX_SOCKET & | to, |
| void * | buf, | ||
| int | size_buf | ||
| ) |
Функция для приема данных через сокет
Cокет TXLib'a.
| to | Сокет, через с которого нужно принять данные. |
| buf | Буфер, который в будет записан массив. |
| size_buf | Размер буфера. |
TX_SOCEKT game_server = txCreateSocket (...); // Создаем сокет ... int x = 0, y = 0; ... char coordinates[200] = ""; // Создаем строку для параметров txRecvFrom (game_server, coordinates, 200); // Принимаем координаты sscanf (coordinates, " x = %d , y = %d", &x, &y); // Извлекаем координаты из полученной строки // (следи за каждым пробелом!).
struct Point { int x, y }; // Тут поступаем умнее, создаем структуру ... // для хранения координат TX_SOCEKT game_client = txCreateSocket (...); // Создаем сокет ... Point p = {}; // Создаем переменную для приема координат ... txRecvFrom (game_server, &p, sizeof (p)); // Принимаем данные DrawGameObject (p.x, p.y); // Используем данные
| int txnAssert | ( | TX_SOCKET & | asr | ) |
Функция для проверки сокета
Cокет TXLib'a.
| asr | Сокет, который нужно проверить. |
Функция для изменения типа (синхронный - не синхронный) сокета.
Cокет TXLib'a.
| to | Сокет, тип которого нужно изменить. |
| blocking | Новый тип блокировки сокета. |
| SOCKET* txGetWinSocket | ( | TX_SOCKET & | what, |
| bool | main | ||
| ) |
Функция, которая возвращает сокет winsock'а.
Cокет TXLib'a.
| what | Сокет TXLib'a, сокет которого нужно вернуть. |
| main | Часть сокета TXLib'a, короую нужно вернуть. |