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

Компонент IdUDPServer: Программа должна каждые 2 секунды отправлять A3D0B0 на указанный IP

28.07.2011, 07:00. Показов 3291. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу на Билдере С++ 2010 с помощью компонента С IdUDPServer

Программа должна каждые 2 секунды отправлять A3D0B0 на указанный IP. и в ответ получать A3D1С0.
Я поставила таймер. Но я не знаю как работать с IdUDPServer...
Мб кто-нить сможет объяснить как отправлять и принимать данные в этом компоненте?


А вот то, что я пыталась сделать с функцией чтения...

C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::IdUDPServer1UDPRead(TIdUDPListenerThread *AThread, TIdBytes AData,
          TIdSocketHandle *ABinding)
{
 if (AData.Length>0) {
     Memo1->Lines->Add("Соединение установленно");
     int dlinna = AData.Length;
 
    // ReadBuffer(buf,AData.Length);
 
     Memo1->Lines->Add(ReadText(AData,AData.Length));
 }
Помогите разобраться...

Добавлено через 16 часов 47 минут
Никто не знает как правильно заменить строчки?
C++
1
2
static char Sign=1;
IdUDPServer1-->SendBufeer(&Sign, sizeof(Sign));
и
C++
1
Memo1->Lines->Add(ReadText(AData,AData.Length));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2011, 07:00
Ответы с готовыми решениями:

Как отправлять данные с IdUDPClient на IdUDPServer?
Всем привет! Научился отправлять данные с IdUDPServer на IdUDPClient. Как отправлять наоборот, то есть с сервера на клиент?

Программа, которая через каждые 4 секунды открывает и закрывает CD-ROM
В книге "Visual Basic в задачах ипримерах" была программа, точнее код программы которая через каждые 4 секунды открывала и закрывала...

Почему эта программа в многопоточном режиме выдаёт за гуды не гуды, а так же стопорится каждые 2 секунды?
Никак не могу понять. Весь проект: http://rghost.ru/54345553 unit Unit6; interface uses

1
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 13
01.09.2014, 19:53
Тут рыскал и примерчик нашел, почитай мне помог разобраться с idudpserver


Код: [Выделить]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
 
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "IdBaseComponent"
#pragma link "IdComponent"
#pragma link "IdUDPBase"
#pragma link "IdUDPServer"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdUDPServer1UDPRead(TIdUDPListenerThread *AThread, TBytes AData,
          TIdSocketHandle *ABinding)
{
Memo1->Lines->Add("---------------------");  //отметка - событие вообще происходит
//################################
char ip_port[300] = "Ошибка!";
char Priem_Buff[9000] = "Ошибка!";
char Rezult_Buff[9000] = "Ошибка!";
int dlinna = AData.Length;           //получаем длину присланного пакета
//################################
if ( dlinna < 4 ){return;}   // если пршёл пакет меньше 4 байт, то это
                             // глюк с компонентом , на самом деле его даже не посылали
 
sprintf(ip_port,"%s:%d",ABinding->PeerIP.t_str(),ABinding->PeerPort);
Memo1->Lines->Add(ip_port);
 
BytesToRaw(AData,Priem_Buff,dlinna);
 
for(int i=0;i < dlinna ;i++)    // цикл замещения нулевых байтов собачкой, что б
 {                              // вывести строку в мемо
 Rezult_Buff[i] = Priem_Buff[i];
 if (Rezult_Buff[i] == 0) {Rezult_Buff[i] = '@';}
 }
Rezult_Buff[dlinna] =  0;      //терминируем нулём, на всякий случай
Memo1->Lines->Add(Rezult_Buff);
Memo1->Lines->Add(dlinna);
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TIdBytes Zapros_Buff = RawToBytes("яяяяTSource Engine Query\0", 25);
IdUDPServer1->SendBuffer("217.116.148.30",27017,Zapros_Buff);
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.09.2014, 19:53
Помогаю со студенческими работами здесь

видеокарта мигает каждые 2-3 секунды
экран становиться черным каждые 2-3 секунды. не знаю что делать. пробовал обновить драйвера - не получаеться. кто может помочь -...

Автообновление WebBrowser каждые 3 секунды
Всем привет!Сильно не пинайте, т.к. я до этого не сталкивался с написанием программ. Пожалуйста помогите вставить код для автоматического...

Уменьшение числа каждые 2 секунды
На сайте есть число, которое должно уменьшаться каждые 2 секунды на 0.2 Подскажите, пожалуйста, в какую сторону плясать?

Фризит система каждые 2-3 секунды
В общем ситуация такая: комп замирает на пол-секунды, каждые 2-3 секунды, причем происходит это только если двигать мышь. Во время игры в...

Выводить текст каждые 3 секунды
Мне задали написать программу, которая будет писать что-либо каждые 3 секунды, какими операторами это сделать?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru