![]() |
TX Library Help – Version: 00173a, Revision: 174
|
[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, короую нужно вернуть. |