15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Использование UDP компонента для отправки строки.

Компилятор: C++ Builder

Компонент UDP имеет всего 2 метода, SendData и GetData. Метод SendData используется для отправки данных типа Variant. Процесс приёма данных выглядит немного сложнее. Для этого используется метод GetData с переменной типа VT_BSTR (обычно BCB эта переменная установлена в VT_BSTR | VT_BYREF, но нам это не подходит). Принимать данные можно когда происходит событие UDP->OnDataArrival. Ниже приведён пример, демонстрирующий использование компонента UDP.

//Начало кода---------------------------------------------------
//в начале значение порта устанавливается в 11 как для локального,
//так и для удалённого компьютера, однако это значение можно поменять
//по Вашему усмотрению
void __fastcall TMainForm::SendClick(TObject *Sender)
{
    //устанавливаем ip хоста, которому хотим отправить
    UDP->RemoteHost = ebSendTo->Text;
    //отправляем данные на удалённый хост
    UDP->SendData (ebData->Text);
}
//-------------------------------------------------------------
void __fastcall TMainForm::UDPDataArrival(TObject *Sender, 
                                          int bytesTotal)
{
    //создаём переменную для приёма данных
    Variant msg;
    //устанавливаем её тип в VT_BSTR (основная строка)
    msg.AsType (VT_BSTR);
    //получаем широковещательные данные
    UDP->GetData (msg, VT_BSTR);
    //помещаем принятое сообщение в окошко редактирования
    ebRecieved->Text = msg;
}
//-------------------------------------------------------------