Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55

Лаунчер для игры должен отправлять пакеты на сервер и слушать ответы

09.05.2015, 20:44. Показов 3103. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане. Нужно сделать лаунчер для игры, на с++ билдере. Он должен отправлять пакеты на сервер и слушать ответы. В клиент-серверном программировании - дуб. Это первое творение). Объясните как отправлять и слушать пакеты. Заранее спасибо за инфу и отсутствие школо-тролей).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2015, 20:44
Ответы с готовыми решениями:

Написать приложение, которое будет отправлять XHR запросы на сервер и получать ответы
Здравствуйте, пишу на qml. Захотелось научиться написанию приложения которое будет отправлять XHR запросы на сервер и получать ответы. Для...

Сервер должен отправлять клиенту отчет о получении файла
Суть такова. Есть клиент, который отправляет файл на сервер. Сервер должен принять файл, сохранить, и отправить клиенту отчет о загрузке. ...

Батник должен отправлять все архивы на FTP-сервер, но отправляет только один
Всем привет. Нужна помощь! Задачка такая, есть батник который должен с компа отправлять архивы на фтп, но отправляет не все, а только 1....

28
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
10.05.2015, 09:14
Нифига себе, первое творение , обычно все с "Hello world" начинают )). Я не умничаю, нее, просто ваша просьба звучит как ТЗ
Про отправку/получение пакетов. Смотря что вы имеете ввиду под пакетами. Если Http-запросы - это одно, если через сокеты - это другое, скорее как раз через второе.
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 10:05  [ТС]
насчет хелло ворлд. я программирую офллайн приложения нормально. это первое творение типа клиент-сервер. нужно отправить tcp запросы, сокеты, на сервер, а он отправит ответ который нужно прослушать и обработать. я просто ваще не знаю как открыть сокет и т.д.))) подскажите плиз

Добавлено через 35 минут
12345
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 10:47
Если стоит C++ Builder 6, то во вкладке Internet есть компоненты TClientSocket и TServerSocket. Без проблем разберешься.
1
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 12:54  [ТС]
стоит rad studio 2010)))

Добавлено через 56 секунд
и есть только TUdpSocket а мне над TCP((((

Добавлено через 52 секунды
есть ТСПКлиент и ТСПсервер. буду смотреть. спасибо

Добавлено через 30 минут
теперь возник еще более нубский вопрос))). как мне отправить на сервер пакет байтов??? вот этот допустим 05 00 15 0C FF

делаю так, ошибка

C++
1
2
3
4
TcpClient1->Connect();
    TcpClient1->Open();
    TcpClient1->SendStream(05 00 15 0C FF);
    TcpClient1->Close();
Добавлено через 28 минут
так компилиться нормально, а вот после нажатия кнопки с этим кодом - программа лагает и "не отвечает"

C++
1
2
3
4
5
6
7
     TcpClient1->Connect();
    TcpClient1->Open();
    TStream *byte1 = (0x05, 0x00, 0x15, 0x0c, 0x00);
    String byte2;
    TcpClient1->SendStream(byte1);
    TcpClient1->Receiveln(byte2);
    ShowMessage(byte2);
Добавлено через 2 минуты
а так шоумеседж показывает пустоту.... а должен показать ответ от сервера, подскажитееее!11111111 плииииииииз

C++
1
2
3
4
5
6
    TStream *byte1 = (0x05, 0x00, 0x15, 0x0c, 0x00);
    String byte2;
    TcpClient1->SendStream(byte1);
    TcpClient1->Close();
    TcpClient1->Receiveln(byte2);
    ShowMessage(byte2);
Добавлено через 25 секунд
сервер должен прислать 07 00 15 0D 04 A4 03
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 13:25
Цитата Сообщение от primerb Посмотреть сообщение
как мне отправить на сервер пакет байтов??? вот этот допустим 05 00 15 0C FF
попробуй TcpClient1->SendBuf("\x05\x00\x15\x0C\xFF",5);
1
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 13:32  [ТС]
E2034 Cannot convert 'const char *' to 'void *'
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 13:38  [ТС]
сделал так. сервер авторизации показывает конекты вродь

C++
1
2
3
4
5
6
7
TcpClient1->Connect();
    TcpClient1->Open();
    void *buff = (0x05, 0x00, 0x15, 0x0C, 0x00);
    void *ans;
    TcpClient1->SendBuf(buff,5);
    TcpClient1->Close();
    TcpClient1->ReceiveBuf(ans, 7);
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 13:40  [ТС]
но как теперь достать данные из ответа)?

Добавлено через 1 минуту
- Получаем ответ от сервера с ключами :
07 00 15 0D 04 A4 03
где :
04 = PlusKey
A4 = XORKey
Подробнее: http://www.rf-cheats.ru/forum/... php?t=5516

вто эти байты мне надо достать
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 13:49
Цитата Сообщение от primerb Посмотреть сообщение
void *buff = (0x05, 0x00, 0x15, 0x0C, 0x00);
мне вот эта запись не нравится. в первый раз такое вижу.

Цитата Сообщение от primerb Посмотреть сообщение
E2034 Cannot convert 'const char *' to 'void *'
попробуй так:
ClientSocket1->Socket->SendBuf( (void*)"x30, 0x00, 0x15, 0x0C, 0x00", 5);

P.S. К сожалению под рукой только 6-й билдер, врядли смогу нормально помочь.
1
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 13:57  [ТС]
я бы сказал, "го тв", но это уже верх наглости. спасибо)

Добавлено через 1 минуту
и с твоей отправкой пашет, но как мне разобрать ответ???)
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 14:08
Цитата Сообщение от primerb Посмотреть сообщение
но как мне разобрать ответ???)
читать статью.

как я понял, первые байты в сообщении - это размер всего сообщения. и этот размер оканчивается нультерминирующим символом '\0'.
далее два байта - это тип сообщения.
а дальше сами данные.
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 14:13  [ТС]
нет, ты не понял. статья то статья. но ответ мне приходит в переменную типа void. я не могу не шоумеседжем его глянуть, ни в мемо вывести. коверсия в чармассив тоже не идет. я спрашиваю, как его посмотреть).
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 14:38
Цитата Сообщение от primerb Посмотреть сообщение
я спрашиваю, как его посмотреть).
как-то не задавался этой задачей, смотрел через отладчик.
можешь попробовать в server socket'е прочитать несколько байтов, а потом в Memo добавить, предварительно переконвертировав байты с помощью BinToHex

Добавлено через 9 минут
или так:
C++
1
2
3
4
5
6
        String s = "";
        for ( int i = 0; i < SizeBuf; i++ ) // SizeBuf - размер буфера
        {
                s += "0X" + IntToHex(buf[i], 2) + " "; // buf - сам буфер
        }
        Memo1->Lines->Add(s);
1
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 14:44  [ТС]
а что такое сайзбаф и баф)))?

Добавлено через 2 минуты
понял, а то сначала кодировка не отобразилась нормально показало ?°?*?§?¬???° ?????????°?*

Добавлено через 1 минуту
E2285 Could not find a match for 'IntToHex(void *,int)'
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 14:44
Цитата Сообщение от primerb Посмотреть сообщение
понял, а то сначала кодировка не отобразилась нормально показало ?°?*?§?¬???° ?????????°?*
я в это время переправлял, потому как с билдера криво скопировалось
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 14:46  [ТС]
пост выше))) в чем прикол(?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 14:48
Цитата Сообщение от primerb Посмотреть сообщение
E2285 Could not find a match for 'IntToHex(void *,int)'
а так?
C++
1
IntToHex((void*)buf[i], 2)
0
1 / 1 / 0
Регистрация: 11.04.2015
Сообщений: 55
10.05.2015, 14:50  [ТС]
[BCC32 Error] Unit4.cpp(99): E2285 Could not find a match for 'IntToHex(void *,int)'
Full parser context
Unit4.cpp(79): parsing: void _fastcall TForm4::Button1Click(TObject *)

Добавлено через 21 секунду
C++
1
s += "0X" + IntToHex((void*)ans[i], 2) + " ";
Добавлено через 16 секунд
C++
1
s += "0X" + IntToHex((void*)ans[i], 2) + " ";
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.05.2015, 15:05
Понял. Видимо передаешь сам буфер, а нужно сам байт (точнее int) передавать в эту функцию.
C++
1
IntToHex((int)buf[i], 2)
Добавлено через 14 минут
Кстати, программы же, которые позволяют посмотреть, что передается по сети:
WireShark, CommView,...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2015, 15:05
Помогаю со студенческими работами здесь

Лаунчер для online - игры
Есть одна игра Love Beat (Тайская Версия) и чтобы попасть игру,нужно залогинится на сайте игры. Сайт игры:...

Лаунчер для игры + мониторинг
Здравствуйте Я зделал лаунчер для онлайн игры но мне нужно сделать мониторинг этой игры чтобы выглядиило так Server: ...

Лаунчер для игры MineCraft
Нашел интересный Батник запуска игры (Майнкрафт) , созданный человеком под ником KRON. Суть в наличии меню и вызове другого батника для...

Как сделать лаунчер для игры?
Делаю игру на unity. Вот хочу сейчас закинуть сырую бетку в интернет. Подскажите, как сделать к ней лаунчер. В общем, планирую потихоньку...

Лаунчер для игры + мониторинг + новости
Лаунчер для игры + мониторинг Здравствуйте Я зделал лаунчер для онлайн игры но мне нужно сделать мониторинг этой игры чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru