Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2009, 15:55   #1
rangel
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 65
По умолчанию IdUDPServer indy 10

На 9 инди у меня всё работало нормально
там был
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TStream; ABinding: TIdSocketHandle);

на 10 инди стало так
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TBytes; ABinding: TIdSocketHandle);

и такой код больше не работает

var
Stream1: TStringStream;
begin
Stream1 := TStringStream.Create('');
Stream1.CopyFrom(AData,AData.size);

подскажите как мне получить в мемо через IdUDPServer только что отправленный текст через IdUDPClient

я совсем запутался... зачем менять TStream на TBytes....(((
rangel вне форума Ответить с цитированием
Старый 05.07.2009, 19:50   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну можно было для начала хотя бы в справке посмотреть. В Indy есть куча статических методов перевода Tbytes куда угодно )
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 05.07.2009, 22:38   #3
rangel
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 65
По умолчанию

А подробнее?(( немогу разобратсья
Заслуженный модератор Квэнди справка на англ, и у меня она вообще не работает по ф1 ошибка вылезает...

Последний раз редактировалось rangel; 05.07.2009 в 23:39.
rangel вне форума Ответить с цитированием
Старый 06.07.2009, 08:38   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну во-первых:
http://www.indyproject.org/docsite/h...le=TBytes.html
Подключите модуль Idglobal,там есть множество функций преобразования, например:
Код:
function BytesToString(const AValue: TIdBytes; AEncoding: TIdTextEncoding = nil): string; overload;
function BytesToString(const AValue: TIdBytes; const AStartIndex: Integer; const ALength: Integer = -1; AEncoding: TIdTextEncoding = nil): string; overload;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 06.07.2009, 11:50   #5
rangel
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 65
По умолчанию

спасибо работает
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send('Hello');
end;



procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TBytes; ABinding: TIdSocketHandle);
begin
Memo1.text:=BytesToString(Adata,en7bit);
end;
rangel вне форума Ответить с цитированием
Старый 07.08.2009, 18:22   #6
amber_splash
Новичок
Джуниор
 
Регистрация: 07.08.2009
Сообщений: 1
По умолчанию

кириллические буквы не понимает! перепробовал все варианты конвертации на входе сервера в AData вместо кириллицы только знаки "?"
amber_splash вне форума Ответить с цитированием
Старый 10.08.2009, 08:14   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Откуда такая уверенность ? показывайте код
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 10.08.2009, 13:16   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у меня была трабла с кодировками в шестерке....
я конвертил через UTF8ToANSI
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.10.2009, 17:38   #9
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
Радость

Цитата:
Сообщение от amber_splash Посмотреть сообщение
кириллические буквы не понимает! перепробовал все варианты конвертации на входе сервера в AData вместо кириллицы только знаки "?"
Та - же проблема. При использовании UTF8ToANSI невидно даже "?"
Lime вне форума Ответить с цитированием
Старый 07.10.2009, 12:00   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Я вообще так делал и проблем не было
Код:
procedure TChatForm.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
  var i:integer;
      RxText:String;
begin
 RxText:='';
 for i:= 0 to High(Adata) do RxText:=RxText+chr(Adata[i]);

end;
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить indy 9 на indy 10 Пилигрим Компоненты Delphi 16 30.04.2010 10:11
IdUdpServer CrazyProgramer Работа с сетью в Delphi 9 21.07.2008 16:36
Ошибка в IdUDPServer Иллидан Работа с сетью в Delphi 1 24.02.2008 19:03
Не не знаю в чем проблема с IdUDPServer D@rk M@k Работа с сетью в Delphi 2 28.12.2007 15:46
idudpserver+mssql+adodataset vodila БД в Delphi 1 11.08.2007 09:56