Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Iriskin
7 / 7 / 2
Регистрация: 18.10.2012
Сообщений: 95
1

Передача пакета по UDP

18.10.2012, 19:39. Просмотров 2601. Ответов 6
Метки нет (Все метки)

Помогите, пожалуйста, передать структуру данных с помощью компонентов Indy 9 IdUDPClient и IdUDPServer.

Cледующий код не работает (приходят пустые данные):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type TRegDate = record
    Mail: string;
    Login: string;
    Pass: string;
end;
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
var RD : TRegDate;
begin
  RD.Mail:=Edit1.Text;
  IdUDPClient1.SendBuffer(RD, sizeof(RD));
end;
 
 
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var RD : TRegDate;
begin
  adata.Read(RD, SIZEOF(RD));
  edit2.Text:=RD.Mail;
end;
 
end.
]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 19:39
Ответы с готовыми решениями:

Передача данных по UDP - порт клиента
Доброго всем дня. Начал работать с UDP. И столкнулся вот с такой (простой...

Передача файлов по сети клиенту по UDP
Собственно вопрос, как передать файлы от сервера к клиенту по UDP протоколу...

Передача звука по сети с использованием UDP и BASS.DLL
Пытаюсь написать программу для передачи звука по сети. Мне посоветовали...

Отправка TCP пакета
Всем привет! Появился ЕЩЁ один вопрос. Пишу программу без использования VCL,...

com порт. Автоматическое принятие пакета
Господа программисты. Как и при помощи чего можно считать информацию с ком...

6
Nutserus
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 608
18.10.2012, 20:04 2
Под тип string не выделяется фиксированное количество памяти и применять к нему и к записи содержащей его SizeOf нельзя. Используй shortstring, тогда длинна строки будет ровна 255.
1
Iriskin
7 / 7 / 2
Регистрация: 18.10.2012
Сообщений: 95
18.10.2012, 20:10  [ТС] 3
Огромнейшее спасибо!
Около меяца мучился, теперь заработало!
0
raxp
10185 / 6568 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
18.10.2012, 20:15 4
...можно сделать так:
Delphi
1
2
3
4
5
type TRegDate = record
    Mail: string[255]; // сколько хотите
    Login: string[255];
    Pass: string[100];
end;
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
18.10.2012, 20:21 5
Цитата Сообщение от Iriskin Посмотреть сообщение
Около меяца мучился
Абалдеть)
Аж целый месяц жизни коту под хвост)
Вместо тоого чтобы открыть документацию, проштудировать ее и за 5 минут расставить в голове все по полкам)
0
Iriskin
7 / 7 / 2
Регистрация: 18.10.2012
Сообщений: 95
18.10.2012, 20:47  [ТС] 6
Не думаю, что в документации по Indy сказано, что SizeOf() не применяется к типу string
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
18.10.2012, 21:07 7
Цитата Сообщение от Iriskin Посмотреть сообщение
Не думаю, что в документации по Indy сказано, что SizeOf() не применяется к типу string
Причем здесь вообще Инди ?
Это азы программирования в Делфи.
0
18.10.2012, 21:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 21:07

Delphi с использованием пакета Mathcad
Пишу программу на Delphi с использованием пакета Mathcad. Нужно передавать...

Передача пакета 1025 байт с максимальной частотой по UDP под виндовс загружает сетевую карту
Здравствуйте. У меня такая ситуация. Я посылаю данные по 1024 байта. На линуксе...

Передача с микрофона в udp и прием из udp на динамик
Собственно каким образом осуществить передачу данных с микрофона в сеть и прием...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru