Переводчик
Главная Форум Файлы Статьи GITHUB TELEGRAM
Добро пожаловать на уникальный игровой портал Тосттост! Здесь Вы сможете найти самые интересные новости из мира игровой индустрии, найти самые свежие сотфины для различных онлайн игр, общаясь на форуме получать мнения специалистов и помогать тем кто не смог получить нужный ответ в той или иной сфере!
Авторизация Регистрация
Последние обсуждаемые темы на форуме
Последние комментарии к новостям
Топ-10 форумчан
Группа "Гости" не имеет права просмотра модуля
Что такое SAMP? 23.09.2024
Никита Кайпен(Андронов) закодировался от... 05.04.2024
Альберт Миронов он же Парвиз Азизбоев пр... 04.03.2024
Защита от sampst флуда(SAMP AntiDDoS/DoS... 26.01.2024
Защита от sampst флуда(SAMP AntiDDoS/DoS... 22.01.2024
Слив мода " Megas Drift Server &quo... 14.06.2023
Защита от sampst флуда(SAMP AntiDDoS/DoS... 14.06.2023
МультиЧит by ]GsH[MeG@LaDo[N] 0.3.7 20.07.2020
ExtremeX DM 27.05.2020
ExtremeX DM 22.05.2020
1. Адмен 2447
2. Effect 82
3. Pahanch1kkk 46
4. AdCKuY_DpO4uLa 37
5. InFerNo 35
6. SkYFaLLeN 31
7. d1amondl1on 31
8. R4DUGA 30
9. [NACIONAL]IST_BERZ 23
10. Julia 21
Если вам говорят что публикуемые новости бред сумасшедшего или же говорят вовсе не посещать этот сайт, пожалуйта сообщите нам об этом. Любые контактные данные тех лиц вы можете прислать в личные сообщения AlexDrift, зарегистрировавшись на сайте или же связаться через комментарии в нашем Телеграмм канале.
ИЗБРАННОЕ
SA-MP Клиенты SA-MP.APP Client(0.3.7-R1, 0.3.7-R5) - Скачать SA-MP Reborn Client(0.3.7-R1, 0.3.7-R5) - Скачать Open.MP Launcher(0.3.7-R1, 0.3.7-R5) - Скачать SA-MP Серверы SA-MP 0.3.7 R2-2 LINUX SERVER - Скачать SA-MP 0.3.7 R2-2 WINDOWS SERVER - Скачать Open.MP 0.3.7 WINDOWS SERVER - Скачать Open.MP 0.3.7 LINUX SERVER - Скачать Другое Пиар/Раскрутка/Реклама серверов SAMP
GTA SAN ANDREAS MULTIPLAYER
Готовые Сервера Filterscripts Gamemodes Plugins Маппинг SA:MP Программы Cheat Программы CLEO Собейты RakSAMP VIP Файлы Исходники Клиенты Сервера
GTA SAN ANDREAS SINGLE PLAYER
Машины Мотоциклы Велосипеды Моды Оружие CLEO Вертолеты Самолеты Водный транспорт Поезда Скины Программы Прицепы Одежда
COUNTER STRIKE 2 GLOBAL OFFENSIVE
Скины/Модели Плагины Карты Конфиги Разное Готовые сервера
COUNTER STRIKE 1.6
Карты Конфиги Модели оружия Модели игроков Скрипты для CFG Плагины Защита сервера Разное для сервера Готовые сервера Скачать CS 1.6 Звуки Читы
COUNTER STRIKE SOURCE
Карты Конфиги Модели оружия Модели игроков Скрипты для CFG Плагины Защита сервера Разное для сервера Готовые сервера Звуки
ДРУГИЕ ИГРЫ
Dota Warface Minecraft Rust World of Tanks GTA 5
КАТАЛОГ СТАТЕЙ
SEO Dota Разное GTA 5 КЛЕО С++ Minecraft GTA SA World of Tanks
ВСЕ ДЛЯ ВЕБМАСТЕРА
CMS игровым хостингом Автодонаты Разное
РАЗЛИЧНЫЕ ПРОГРАММЫ
Компиляторы, отладчики Skype Tools
мини-чат портала
статистика сайта
Всего зарегистрировано: 3089
Новых за месяц: 0
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Комментариев: 154
Форум: 2457/3122
Новостей: 336
Файлов: 831
Статей: 379
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Пользователи онлайн:
Сегодня нас посетили:
Лента новостей и публикаций на портале Тосттост
23.08.2016
WinSockets
WinSockets
Для чего нужны сокеты?
Всем очень часто приходится писать программы, прямо или косвенно работающие с сетями. Можно воспользоваться компонентами и классами, написанными за нас и уложиться в 100 строчек при написании простенького клиент - сервера. Но иногда программа должна иметь очень маленький размер и воспользоваться компонентами не представляется возможным. Тут то мы и вспоминаем о WinSockets API. Преимущества API это не только минимальный размер файла, но и полная базонезависимость кода и полное понимание логики работы программы.

Что такое Сокеты?
Сокеты (Sockets) - это высокоуровневый интерфейс взаимодействия с различными сетевыми протоколами. Для работы с сокетами есть класс API функций - Windows Sockets 2 API, описанные в заголовочном файле winsock2.h для С или WinSock.pas для Delphi. Следовательно для работы с WinSokets API в С нужно подключить заголовочный файл директивой

+----------------------+
#include
+----------------------+
и слинковать (подключить) проект с lib - файлом (обычно это libws2_32.lib). В Delphi нужно добавить WinSock в список Uses.

Начинаем работать
Чтобы работать с сокетами, надо для начала инициализировать функции библиотеки WinSock. Для этого надо вызвать функцию int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); передав в старшем байта слова wVersionRequested номер требуемой версии, а в младшем – номер подверсии. Аргумент lpWSAData указывает на структуру WSADATA, в которую при успешной инициализации будет занесена информация о производителе библиотеки. Если инициализация провалилась, функция возвращает ненулевое значение.

Для С вызов будет таким:

+---------------------------------------------------------------------+
//Для начала объявим структуру WSADATA
struct WSADATA WSAData;
//Вызываем функцию инициализации,
//попутно проверяя возвращаемое значение, если не ноль, то выходим.
//Номер версии - 2, подверсии - тоже 2.
if (WSAStartup(0x0202, &WSAData))
return 0;
+---------------------------------------------------------------------+
Для Delphi:

+---------------------------------------------------------------------+
//Для начала объявим структуру WSADATA
var
WSAData: TWSAData;
//Вызываем функцию инициализации,
//попутно проверяя возвращаемое значение, если не ноль, то выходим.
//Номер версии - 2, подверсии - тоже 2.
if WSAStartup($0202, WSAData) <> 0 then
Exit;
+---------------------------------------------------------------------+
Затем надо создать объект "сокет". Для этого вызывается функция SOCKET socket(int af, int type, int protocol); Аргумент af - семейство используемых протоколов. Для интернет - приложений он должен иметь значение AF_INET. Аргумент type - тип создаваемого сокета - потоковый - SOCK_STREAM или дейтаграммный - SOCK_DGRAM.

Аргумент protocol уточняет какой транспортный протокол следует использовать. Нулевое значение соответствует выбору по умолчанию:

TCP - для потоковых сокетов;
UDP для дейтаграммных;

Если функция завершилась успешно она возвращает дескриптор a.k.a. хэндл a.k.a. указатель на сокет, в противном случае INVALID_SOCKET.

С:

+---------------------------------------------------------------------+
//Объявляем объект сокет
SOCKET sock;
//Создаем объект сокет,
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET)
return 0;
+---------------------------------------------------------------------+
Delphi:

+---------------------------------------------------------------------+
//Объявляем объект сокет
sock : TSocket;
//Создаем объект сокет,
sock := socket(AF_INET, SOCK_STREAM, 0);
if sock = INVALID_SOCKET then
Exit;
+---------------------------------------------------------------------+
Дальнейшие действия различаются в зависимости от того, серверное приложение или клиентское.

Клиент
Чтобы установить соединение с удаленным компьютером, клиент должен вызвать функцию int connect(SOCKET s, const struct sockaddr FAR* name, int namelen); Аргумент s - дескриптор сокета, возращенный функцией socket. Аргумент name - указатель на структуру sockaddr, содержащую в себе адрес и порт удаленного узла с которым устанавливается соединение. Но смотрите внимательнее, функция принимает указатель на структуру sockaddr, а нам надо передать структуру sockaddr_in. Приведем её к типу sockaddr и все получиться. Аргумент namelen - размер структуры sockaddr. Объявление структуры выглядит так:

struct sockaddr_in
{
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
Где:
sin_family - семейство протокола,
sin_port - номера порта,
sin_addr - IP-адреса узла
sin_zero - восемь нулевых байт. Они нужны для того,
чтобы структура sockaddr может работать и с другими сетями,
адреса же некоторых сетей требуют для своего представления
гораздо больше четырех байт, поэтому и берут с запасом.
Среди производителей процессоров нет единого мнения на счет порядка следования младших и старших байт. Так например, у микропроцессоров Intel младшие байты располагаются по меньшим адресам, а у микропроцессоров Motorola 68000 - наоборот. Это вызывает проблемы при межсетевом взаимодействии, поэтому был введен специальный сетевой порядок байт, предписывающий старший байт передавать первым (противоположно тому, как сделано у Intel).

Для преобразований чисел из сетевого формата в формат локального хоста и наоборот предусмотрено четыре функции - первые две манипулируют короткими целыми (16-битными словами), а две последние - длинными (32-битными двойными словами):

u_short ntohs (u_short netshort);
u_short htons (u_short hostshort);
u_long ntohl (u_long netlong);
u_long htonl (u_long hostlong);
Так как номер порта находиться в диапазоне [0..65536], то он занимает одно слово (2 байта или 16 бит), поэтому мы используем функцию u_short htons (u_short hostshort ); для перевода в сетевой порядок байт.

После вызова функции connect система пытается установить соединение с указанным узлом. Если это сделать не удастся, функция возвратит ненулевое значение.

С:

+-------------------------------------------------------------------------------+
//Объявим и заполним структуру sockaddr_in
sockaddr_in SAddr;
//Указажем адрес и порт на сервере
SAddr.sin_family = AF_INET;
SAddr.sin_port = htons(31337);
//Указываем ip сервера, используя функцию inet_addr для перевода ip из строки //в понятный
функции вид
SAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
//Устанавливаем соединение, приводя структуру sockaddr_in к типу sockaddr
if (!connect(sock, (struct sockaddr *)&SAddr, sizeof(struct sockaddr_in)))
return 0;
+-------------------------------------------------------------------------------+
Delphi:

+-------------------------------------------------------------------------------+
//Объявим и заполним структуру sockaddr_in
var
SAddr : sockaddr_in;
//Указажем адрес и порт на сервере
SAddr.sin_family := AF_INET;
SAddr.sin_port := htons(31337);
//Указываем ip сервера, используя функцию inet_addr для перевода ip из cтроки //в понятный функции вид
SAddr.sin_addr.s_addr := inet_addr('127.0.0.1');
//Устанавливаем соединение, приводя структуру sockaddr_in к типу sockaddr
if connect(sock, SAddr, sizeof(struct sockaddr_in)) <> 0 then
Exit;
+-------------------------------------------------------------------------------+
На этом клиентская часть завершена и мы можем обмениваться данными.

Сервер
Прежде, чем сервер сможет использовать сокет, он должен связать его с локальным адресом. Связывание осуществляется вызовом функции
int bind(SOCKET s, const struct sockaddr FAR* name, int namelen);
Аргумент s - дескриптор сокета, возращенный функцией socket.
Аргумент name - указатель на структуру sockaddr.
Аргумент namelen - размер структуры sockaddr.
Если все прошло успешно, функция возвращает ненулевое значение. Чтобы связать сокет с с каким либо локальным адресом, необходимо заполнить структуру sockaddr_in. Локальный, как, впрочем, и любой другой адрес Интернета, состоит из IP-адреса узла и номера порта.

Если сервер имеет несколько IP адресов или мы биндимся на локальный компьютер, то для этого вместо IP-адреса следует указать константу INADDR_ANY равную нулю.

С:

+------------------------------------------------------------------------+
SAddr.sin_family = AF_INET;
SAddr.sin_port = htons(31337);
if (!bind(sock, (struct sockaddr *)&SAddr, sizeof(struct sockaddr_in)))
return 0;
+------------------------------------------------------------------------+
В дельфи тут все тоже самое, поэтому код приводить не стану.

Выполнив связывание, потоковый сервер переходит в режим ожидания подключений, вызывая функцию

int listen (SOCKET s, int backlog );
где s – дескриптор сокета,
а backlog – максимально допустимый размер очереди сообщений.
Если все проходит успешно, функция возвращает ноль.

С:

+----------------------+
if (!listen(sock, 0))
return 0;
+----------------------+
После этого, сервер должен извлекать запросы из очереди сообщений функцией SOCKET accept (SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen); Она создает новый сокет, выполняет связывание и возвращает дескриптор сокета, в структуру sockaddr_in функция ip адрес и порт подключившегося клиента. Если мы вызовем accept, а очередь будет пуста, функция не возвратит управление, пока не подключиться клиент. Если при выполнение произошла ошибка, функция возвратит отрицательное значение.

Для параллельной работы с несколькими клиентами нужно создавать новый поток или процесс, передавая ему дескриптор созданного функцией accept сокета. Если этого не сделать, то одновременно сервер не сможет обслужить более одного клиента.

C:

+-----------------------------------------------------------------------+
if (!listen(sock, 0))
//Бесконечный цикл
for (;;)
{
AcpSock = accept(sock, (struct sockaddr *)&SAddr, &SALen);
if (AcpSock != INVALID_SOCKET)
//Создаем поток
CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)&SockThread,
(void *)AcpSock,
0,
NULL
);
}
else
//Если ошибка
//return 0;
+-----------------------------------------------------------------------+
На этом создание серверной части завершена и я распишу обмен данными.

Обмен данными
После того, как мы установили соединение, сокеты могут обмениваться с удаленным компьютером данными, вызывая функции

int send(SOCKET s, const char FAR * buf, int len,int flags); //Для посылки данных
и
int recv(SOCKET s, char FAR* buf, int len, int flags); //Для приема данных

Функция send возвращает управление сразу же после ее выполнения, независимо от того, получила ли принимающая сторона наши данные или нет. При успешном завершении функция возвращает количество передаваемых данных.

Функция recv возвращает управление после того, как получит хотя бы один байт. Каждый вызов recv за один раз получает столько байтов, сколько их было послано функцией send. Поэтому выделяйте ей большой буфер, чтобы избегать переполнения и ошибок.

Отправка С:

+-----------------------------------+
//Создаем буфер
int buff[1024] = {0};
//Отправляем
send(sock, buff, sizeof(buff), 0);
+-----------------------------------+
Получение C:

+-----------------------------------+
//Создаем буфер
int buff[1024] = {0};
//Получаем
recv(sock, buff, sizeof(buff), 0);
+-----------------------------------+
Окончание работы
Чтобы завершить работу с сокетом и закрыть соединение, надо вызвать функцию int closesocket(SOCKET s); передав ей дескриптор сокета.

Перед выходом из программы необходими вызывать функцию int WSACleanup(void); которая деинициализирует библиотеку.

P.S.
Вот я и рассмотрел всего лишь мизерную часть работы с сокетами... Чтобы рассмотреть все, нужна целая книга.

Советую почитать citforum.ru/book/cook/winsock.shtml, там очень много информации о сокетах, а также:

sockaddr.com
winsock.com
sockets.com.

© Luke 28.05.2008

Zixter написал:
1)

Для С вызов будет таким:

//Для начала объявим структуру WSADATA

struct WSADATA WSAData;

Из winsock2.h:

typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
CHAR szDescription[WSADESCRIPTION_LEN + 1];
CHAR szSystemStatus[WSASYS_STATUS_LEN + 1];
USHORT iMaxSockets;
USHORT iMaxUdpDg;
CHAR FAR* lpVendorInfo;
} WSADATA, FAR* LPWSADATA;

Обрати внимание на регистр букв в своем объявлении. Если ты пишешь struct, то после нее должно быть WSAData, либо если без struct:

WSADATA WSAData;

2)
Такое подозрение, что

С:
+----------------------+
if (!listen(sock, 0))
return 0;
+----------------------+

поставит нулевую длину очереди, и сокет просто не будет принимать соединения. (только догадка, лично не проверял). Может лучше так:

if (!listen(sock, SOMAXCONN))
Добавлено: 28.05.2008 13:54:59
Luke написал:
>Обрати внимание на регистр букв в своем объявлении. Если ты пишешь struct, то после нее должно быть WSAData, либо если без struct:

WSADATA WSAData;

+---------------------------------------------+
Согласен, не прав, просто я скопирнул из проекта, а у меня там был один дефайн...

А насчет
+----------------------+
if (!listen(sock, 0))
return 0;
+----------------------+
не согласен, ибо очередь - это то что НЕ подключено и ОЖИДАЕТ соединения, то есть все, что кроме нашего подключившегося сокета.

Добавлено: 28.05.2008 15:09:16
Izg0y написал:
Кхм.... очень сильно смахивает на мою статью в 22h

Добавлено: 28.05.2008 17:06:06
Пгкг написал:
Для параметра в поток желательно выделять место, ибо могут потеряться. Место выделять - например в хипе.
Если не секрет, к чему указатель на адрес(&) адреса функции в создании потока? Может я что-то не докурил.

Основы, основами, а ioctlsocket мона было бы и описать.

По опыту знаю (: всем интересно получать адрес(ip) входящего соединения.
int SALen = sizeof(SAddr);
... accept(sock, (struct sockaddr *)&SAddr, &SALen); ...
после accept делаем inet_ntoa(SAddr.sin_addr)

Добавлено: 28.05.2008 17:19:05
Luke написал:
Пгкг, указатель надо ставить, ибо третий параметр функции CreateProcess требует указатель на функцию, которая будет исполняться при инициализации потока.
+----MSDN----+
lpStartAddress
A pointer to the application-defined function to be executed by the thread and represents the starting address of the thread. For more information on the thread function, see ThreadProc.
+----MSDN-END----+

Добавлено: 28.05.2008 17:35:00
Luke написал:
Да, в данном случае амперсанд излишен, но если будет вылазить ошибка - то смело ставьте его. Согласно стандарту С, имя функции в скобках - указатель, но компиляторы даже без скобок считают имя за указатель. Хотя иногда мне приходилось ставить взятие адреса.

Добавлено: 28.05.2008 17:50:34
ds5v написал:
а не спизж#енно ли это, в переделке, с http://coru.in/ ?

Добавлено: 28.05.2008 18:08:41
Luke написал:
Нет, не льстите себе.
Как я уже говорил человеку, предъявившему мне претензии, и сказавшему что это "спизж#енно" с журнала 22H, я ту статью вообще не видел. Но специально отыскал и прочел. Общего очень мало, да и в программировании когда рассказываешь о сокетах, можно рассказывать только точные вещи, то есть материал примерно схож.

Добавлено: 28.05.2008 18:37:22
Пгкг написал:
Luke, огорчу Вас. Эксепшенов никогда не будет (если приведете пример - я извинюсь (: ). Можно смело использовать прямое название user-defined функции. Ибо в качестве параметра для создания потока, что UserFunc, что *UserFunc и &UserFunc - все одно и тоже самое.
Можете на пример сделать printf("%p %p %p",UserFunc, *UserFunc, &UserFunc) - адреса будут одинаковыми...

Добавлено: 29.05.2008 22:33:39
noname написал:
извините но статья похоже на копипаст из книг не чего своего тут не видно, базовые идеи. у нас теперь стало модно перекопировать книги?

Добавлено: 01.06.2008 12:40:12
Luke написал:
А что можно нового рассказать про сокеты?=)
Это и есть квинтессенция самого полезного из различных источников.

Добавлено: 01.06.2008 19:09:20
Dark Angel написал:
Вам не удалось оживить данную изъезженную тему, лишь внести непонятки, но свой труд конечно же ценится, как мной, так и вами.

Может быть просто не удачное форматирование

+------------------------------------------------------------------------+
SAddr.sin_family = AF_INET;
SAddr.sin_port = htons(31337);
if (!bind(sock, (struct sockaddr *)&SAddr, sizeof(struct sockaddr_in)))
return 0;
+------------------------------------------------------------------------+

Раздел: Разное • Автор: AlexWill • Комментариев: 0 • Не забываем поблагодарить автора :)
Похожие материалы
Скачать читы samp, самп-рп баги, баги samp-rp, баги адванс-рп, даймонд баги, собейт самп, купить аккаунт samp, магазин аккаунтов SAMP, магазин аккаунтов STEAM, аккаунты Warface, магазин аккаунтов Warface, аккаунты WoT, скачать читы Minecraft, читы самп, читы samp 0.3.7, читы WoT, Counter Strike, читы Warface, новости, обзоры, превью, интервью, статьи, скриншоты, обои, а также коды к играм, прохождение игр, патчи для игр и трейнеры, читы CS:GO, читы ксго, читы кс 1.6, читы гта 5, читы гта, моды самп, читы варфейс, ддос, pawno, pawn, php, delphi, javascript, js, jquery, ajax, samp, photoshop, video, картинки, программирование, программы, софт, бесплатный, аватары, pascal, движки, форумов, фреймворк, zend, codeigniter, yii, уй, kohana, minecraft, css, cs, counter strike, самп, приколы, картинки, игры, уроки, peace-pawno, мануалы, скрипты, моды, хаки, шаблоны, сборки, движки, языки программирования, vb, vbulletin, phpbb, joomla, dle, видео, развлечения, игры, уроки, unity3d, unreal, engine, cry, игростроение, игровые, движки, модели, моделирование, 3d, max, sketch, up, gta, Скриптинг, PAWNO, SA-MP, IV-MP, MTA, уроки, помощь, создание, сервер, моды, скрипты, плагины, cleo, читы, читинг, собейт, s0beit, sobeit, моды для sa-mp, скрипты для sa-mp, pawno скриптинг, pawno скрипты, pawno моды, iv-mp скриптинг, iv-mp скрипты, iv-mp моды, мод godfather, Моды SAMP, как установить машины для gta 4, Моды гта 4, Моды GTA 4, скачать моды для GTA 4, скрипты и моды GTA 4 скачать, скрипты SAMP, моды SAMP на русском языке, где можно скачать Pen1 LS, скачать Pen1 Fugitive, скачать The Godfather, rp, roleplay, samp-rp, скачать бесплатно, создать sa-mp сервер, создать мод sa-mp, создать скрипт в pawno, gta-iv, gta-v, gta-sa, gta-3, gta-III, gta-4, gta-5, gta-vc, mta, mta-dm, mta-race, mta-sa, pawno, инфо, info, информация, ru, помощь в pawno, ошибки pawno, сервер, павно, gta-iv крэк, gta-iv патч, gta-v демо, gta-v трейлер, gta-iv keygen, скрипты gta sa, gta 4 multiplayer, gta san adnreas multiplayer, sa-mp forum, форум о sa-mp, форум о pawno, русский sa-mp, русское pawno, русификатор, реклама, раскрутка сервера, пиар сервера sa-mp, мониторинг gta-sa, ошибки в pawno, pawno errors, sa-mp 0.3c, SA-MP 0.3d, Играть в гта по сети, моды для сампа, скрипты самп, Моды гта 4, Моды GTA 4, скачать моды для GTA 4, скрипты и моды GTA 4 скачать, скрипты SAMP, моды SAMP на русском языке, где можно скачать Pen1 LS, скачать Pen1 Fugitive, скачать The Godfather, Все моды SAMP у нас, скачать, читы, samp, приватные, читы, купить, моды, продать, gta, gta5, gta 5, gta6, gta 6, gta san andreas, gta4, gta 4, gtaonline, gta online, GTA Vice City, моды, дополнения, авто, автомобили, машины, код, коды, чит коды, прохождение, видео, оружие, мотоциклы, самолеты, самолет, мотоцикл, автомат, grand theft auto, rockstar, rockstar games, videos, mod, mods, карты, карта, maps, gta 4 online, гта5, гта 5, гта6, гта 6, гта 4, гта4, гта3, гта 3, гта сан андреас, патч, патчи, patch, skins, skin, одежды, скин, скины, одежда, gta1, gta 1, текстуры, текстура, секреты, ограбление, прохождение gta 5, прохождение gta 6, enb, asi, lua, cleo, миссии, спидометр, спидометры, музыка, русификатор, русификаторы, анимация, анимации, сборка павлова, без стиллеров, программы, инструкции, гайды, rp-термины, samp, sa-mp, самп, гта самп, маинкрафт хостинг, samp hosting, sa-mp hosting, самп hosting, гта самп hosting, маинкрафт хостинг, hosting, хостинг вдс, вдс хостинг, ддос защита, защита от ддос, ddos защита, защита от ddos, sla, arbor, арбор, react, myarena, ru-hoster, хостинг vds, vds хостинг, spoofing, iphm, дедик, дедики, ддос гуард, ddos guard, mitigator, crmp, крмп, крмп хостинг, crmp хостинг, мощные вдс, мощные vds, впс хостинг, vps хостинг, хостинг впс, хостинг vps, minecraft, css, cs, counter strike, ip spoofing, cs1.6 хостинг, css хостинг, minecraft хостинг, arizona rp, arizona role play, cs:go, csgo, ксго, кс го, cs:go хостинг, csgo хостинг, ксго хостинг, кс го хостинг, веб хостинг, web хостинг, web hosting, Counter-Strike 1.6, Counter-Strike: Source, Counter-Strike: Source v34, Counter-Strike: Global Offensive, Garry's Mod, GTA San Andreas Multiplayer, GTA Multi Theft Auto, TeamSpeak 3, HLTV, mta хостинг, мта хостинг, раст хостинг, руст хостинг, rust хостинг, rust hosting, хостинг раст, хостинг руст, хостинг rust, colocation, ragemp, rage mp, рагемп, раге мп, рейджмп, рейдж мп, ragemp хостинг, rage mp хостинг, рагемп хостинг, раге мп хостинг, рейджмп хостинг, рейдж мп хостинг, гарисмод, гаррисмод, гарис мод, гаррис мод, бесплатный хостинг, хостинг серверов, бесплатный хостинг майнкрафт, хостинг серверов майнкрафт, бесплатный хостинг серверов, лучший хостинг, хостинг кс, дешевый хостинг, интернет хостинг, хостинг, другой хостинг, бесплатный хостинг самп, купить хостинг майнкрафт, игровой хостинг, узнать хостинг, хостинг +в россии, российский хостинг, хостинг навсегда, мод хостинг, сервер, server, mskhost, 000webhost, что такое хост, bighost, hostinger, хостингер, хостинг панель, личный хостинг, хостинг кс 1.6, хостинг серверов кс, тестовый хостинг, хостинг кабинет, хостинг личный кабинет, хостинг майнкрафт навсегда, бесплатный хостинг навсегда, недорогой хостинг, таймвеб хостинг, хостинг игровых серверов, хостинг кс го, промокоды хостингов, управление хостингом, как сделать хостинг, dns хостинг, node хостинг, создать хостинг бесплатно, хостинг php mysql, cms хостинг, хостинг тарифы, хостинг серверов 1.6, бесплатный хостинг mysql, хостинг серверов кс 1.6, хостинг hosting, хостинг host, html хостинг, лучшие хостинги майнкрафт, какой хостинг выбрать, хостинг компания, хостинг самп 0.3 7, хостинг самп 0.3, хостинг сайтов php, myarena хостинг, хостинг москва, бесплатный хостинг 0.3 7, защита +от ддос, защита +от ддос атак, ддос защита сайта, защита сайта +от ддос атак, защита +от ддос атак сервера, защита +от ддоса майнкрафт, +как отключить ддос защиту, ддос защита бесплатно, хостинг +с ддос защитой, защита +от ддос атак майнкрафт, плагин +на защиту +от ддоса, защита +от ддос атак сервера майнкрафт, сервера +с защитой +от ддос, защита +от ддос cloudflare, защита +от ддос атак бесплатно, арбор защита +от ддос, лучшая ддос защита, l7 защита +от ддос, кибербезопасность, ddos, dos, ddos атака это, ddos атака что это такое, защитник, виалон хостинг, Виртуальный хостинг, game antiddos, antiddos, antiddos game, antiddos-game, [jcnbyu, [jcnbyu vfqyrhfan, [jcnbyu rfhnbyjr, ukjyfc[jcnbyu, [jcnbyu rhvg , tcgkfnyj, vds antiddos, vds +в россии antiddos, vds +в россии antiddos aeza, antiddos minecraft, antiddos solutions, iptables antiddos, antiddos solutions llc, antiddos plugin, tcp antiddos, antiddos game защита minecraft, плагин +на antiddos, stresser, booter, ddos ip, FastFlux, VPS IPHM, Spoofing enabled, Spoofing enabled servers, Dedicated IPHM, VPS ZMap, zmap, Dedicated ZMap, Dedicated, Dedicated servers, Layer 7 VPS, VPS Offshore, anti spoofing, spoofing атаки, spoof hosting, tcp spoofing, spoofed servers, udp spoofed, anti spoofing packet +from, спуфинг, спуфер, бесплатный хостинг для сайта, виртуальный хостинг, бесплатный хост, бесплатные хостинги, хостинг бесплатный, хостинг кс го серверов, хостинг для сервера кс го, аренда сервера cs go, купить сервер, мта хостинг, мониторинг серверов, купить сервер контр страйк, скачать сервер самп, скачать рп сервер, скачать дрифт сервер, скачать дм сервер, скачать cruel game, скачать сервер дрифт, скачать сервер дм, скачать сервер тдм, role play, финансы, майнинг, криптовалюты, биткоин, bitcoin, monero, mining, шаблоны самп, alexdrift, алексдрифт, алекс дрифт, софт, павно инфо, pawno-info, pawno, DNS AMP, amplification.

К новости нет комментариев, но Вы можете стать первым, оставив свой комментарий!

условия предоставления
Авторские права и контакты
счетчики
счетчики
счетчики
Файлы, статьи, публикации на форуме предоставлены исключительно в ознакомительных целях. Все материалы принадлежат исключительно их владельцам! Администрация портала не несет ответственности за последствия использования вами сторонних материалов, опубликованных на форуме, каталоге файлов, каталоге статей, но гарантирует отсутствие вредоносного кода в новостях и публикациях на главной. Администрация не несёт ответственности за размещённые материалы, но готова удалить их, в случае нарушений. Все материалы предоставлены в ознакомительных целях и администрация предлагает удалить их после ознакомления, а так же не призывает и не является экстремистской или террористической организацией.
  • Основатель портала - AlexDrift
  • Автор дизайна, разработчик - Lil Jonson
  • По возникшим вопросам дизайна - liljonson682@gmail.com
  • По всем возникшим вопросам - vk.com/d3structor1337
  • Уникальный игровой портал Тосттост ® 2011 - 2024
  • Сайт создан в системе uCoz

  • Яндекс.Метрика
    Top.Mail.Ru
    HitMeter.ru - счетчик посетителей сайта, бесплатная статистика