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

UDP протокол Важно!

21.02.2014, 17:41. Показов 5876. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят в продолжении темы сокетов, работаю уже с UDP прооколом и возникла такая проблема: как клиентом принять сообщение от UDP Servera . Использую стандартные компоненты VLС - IdUDPServer и IdUDPClient.
В обратном направлении все понятно, считываем данные из AData и все хорошо. А вот как от сервера отправить сообщение , вот здесь проблема. Не понятно какой командой считать его. если не трудно напишите пожалуйста команду отправки сообщения сервера и команду приема клиентом, дальше я сам сооброжу.
Вообще суть моей программы это отправка 2 сообщений серверу. Мне нужно после того как пришло первое сообщение серверу, он отправил подтверждение клиенту , например сообщением. А как отправить сообщение с сервера не знаю и найти ни где не могу, остольное все написано.
Пожалуйста помогите кто знает...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2014, 17:41
Ответы с готовыми решениями:

UDP протокол
Всем привет! Я тут новичок, надеюсь местные законы не нарушил, создав эту тему. Вообщем очень интересует вопрос о UDP протоколе. Я любитель...

Протокол взаимодействия UDP
Помогите пожалуйста, необходимо обеспечить поиск и замену слов в текстовом файле. Клиент посылает серверу искомое слово и слово для замены....

протокол тестирования udp
Здравствуйте. Имеется часть протокола тестирования кабельной сети. Подскажите, что означают строчки Limit и Margin.

8
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
21.02.2014, 19:15
Indy, а не VLC.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm.send(text: string);
begin
 IdUDPServer1.BroadcastEnabled:= True;
 IdUDPServer1.ThreadedEvent   := True;
 // Send Broadcast
 try
   IdUDPServer1.Active := true;
   IdUDPServer1.Broadcast(Text, 5007, '', enUTF8);
 except on Exception do
 end;
end;
 
 
procedure TForm.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  const AData: TIdBytes; ABinding: TIdSocketHandle);
var msg: string;
begin
 msg:= BytesToString(AData, enUTF8);
 label3.Text:= 'Read port 5006: ' + msg;
 
 // реализуем эхо
 send('Echo: ' + msg);
end;
в билдере будет все тоже самое, только точки замените на ->, а := на =.
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 13
22.02.2014, 05:38  [ТС]
извените, но я не вижу кода клиента... где именно прием сообщениея на стороне клиента, здесь я так понимаю только отправка. мне не понятно как принять сообщение клиентом, в каком событии, и с чего его считать..? подскажите пожалуйста...
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
22.02.2014, 11:03
Вот ваш вопрос в первом посту:
А вот как от сервера отправить сообщение , вот здесь проблема. Не понятно какой командой считать его. если не трудно напишите пожалуйста команду отправки сообщения сервера
Так что вас не устраивает? Клиентом, кстати, все то же самое, понятия эти относительные.
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 13
22.02.2014, 18:11  [ТС]
Попробую точнее написпть. У меня есть две отдельные программы сервер и клиент соответственно. Между ними связь по протоколу UDP. На сервер я отправлюя 2 различных файла, которые сервер должен сохранить в папку. Как только клиент отправляет серверу первый файл , сервер в свою очередь должен отправить клиенту сообщение что дескать первый файл я принял , можно отправлять второй.
Вот в чем загвостка : как клиенту принять сообщение с сервера?
В обратную сторону все понятно. Отправил сообщение клиентом . Потом в программе "Сервер" через команду copyform(AData, size) прочитал . Тоесть сообщение приходит в поток AData.
А вот когда сервером сообщение клиенту отправил, то в программе "Клиент" где его искать, из какого потока, и в каком событии обрабатывать, тоесть как вобще клиент понимает что ему сервер написал что-то ??
подскажите пожалуйста
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
22.02.2014, 18:23
В событии приема данных.
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 13
22.02.2014, 19:53  [ТС]
там единственное событие onStatus.
Вы строчку кода не могли бы написать, или ссылку на пример какую нибудь, но мне кажется я уже все что можно перерыл.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
22.02.2014, 20:32
там единственное событие onStatus.
...научитесь пользоваться IDE и справкой. В нем и обращаетесь к функции чтения данны:
C++
1
IdUDPClient1->ReceiveBuffer(Data);
В зависимости от версии Indy параметры вызова могут отличаться.

На уровне сокетов без всяких Indy еще проще, просто читать в потоке содержимое:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Var
  SockAddr:TSockAddr;
  SockLen:integer;
  len:integer;
 begin
  FillChar(SockAddr,SizeOf(SockAddr),0);
  SockAddr.Family:=Internet;
  SockAddr.Port:=swap(Port);
  SockLen:=SizeOf(SockAddr);
  setlength(result,1024);
  len:=recvfrom(Server,@result[1],1024,0,SockAddr,SockLen);
  if len>0 then SetLength(result,len) else result:='';
 end;
0
UeArtemis
18 / 18 / 3
Регистрация: 23.09.2011
Сообщений: 205
08.08.2018, 13:36
У меня Read срабатывает только на широковещательные сообщения. Как получить сообщение, отправленное на конкретный IP?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2018, 13:36
Помогаю со студенческими работами здесь

Не работает udp протокол
Здравствуйте! Проблема вот в чём. Переустановил windows и перестал udp протокол работать. netstat показывает что программы занимают udp...

Использовать протокол UDP
Разработать сетевое приложение, которое позволяет передавать координаты курcора мыши с одного компьютера на другой. Использовать протокол...

Принять данные через UDP протокол
Два дня смотрел что к чему в интернете, но так и понял что к чему. А может и понял, но роутерне пропускает пакеты, хотя вроде порт...

Как задать порт отправителя (Udp протокол)
Имеем: Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(ip...

Udp протокол в сети, определить адрес отправителя
С модуля клиента отправляю сообщение public static void sendMessage(string message) { UdpClient udp = new...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь 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. На борту пять. . .
Камера 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