На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> Русские буквы по UDP
    indy UDP server
    ExpandedWrap disabled
      Procedure UDPSend(S:String);
      Begin
        With Form1.IdUDPServer1 do
          if Active then Send('10.10.1.255',50000,S{,IndyTextEncoding_UTF16BE Тут что поставить?});
      End;
       
      procedure TForm1.FormCreate(Sender: TObject);
      begin
       IdUDPServer1.Bindings.Add.Port:=50000;
       IdUDPServer1.Active:=True;
      end;
       
      procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
        const AData: TIdBytes; ABinding: TIdSocketHandle);
      Var
        RecieveBuf:String;
      begin
        RecieveBuf:={UTF8ToUnicodeString Тут что поставить?}(BytesToString(AData));
       
        ListBox1.Items.Add(RecieveBuf);
      end;
       
      procedure TForm1.Timer1Timer(Sender: TObject);
      begin
        UDPSend('<USERNAME>'+'Дима');
      end;


    Вместо "Дима" приходит ????
    При отправке у UDP сервера можно поставить IndyTextEncoding. Нужно что-то ставить, и входной буфер что из чего нужно декодить?

    Добавлено
    Если кому надо:
    ExpandedWrap disabled
        IdUDPServer1.Send('10.10.1.255',50000,'<USERNAME>'+'Дима',IndyTextEncoding_UTF8);
       
        RecieveBuf:=BytesToString(AData,enUTF8);
    Сообщение отредактировано: ^D^ima -
      Можно в любой кодировке, главное - чтобы у обоих концов она была одинакова
        Цитата Fr0sT @
        чтобы у обоих концов она была одинакова

        Если я делаю без указания IndyTextEncoding_UTF8, то судя по снифферу вместо Дима идут одинаковые символы
        ExpandedWrap disabled
          IdUDPServer1.Send('10.10.1.255',50000,'<USERNAME>'+'Дима');
          Цитата ^D^ima @
          судя по снифферу вместо Дима идут одинаковые символы

          Если эти символы - ?, то это стандартная замена некодируемых в целевой кодировке символов
            WireShark что говорит? Какие байты реально в сетку посылаются?
              Mr.Delphist
              Спасибо, вопрос решен 10 июня, написано в первом посте и стоил галка "вопрос решен".
                Цитата ^D^ima @

                может быть и такоеuser posted image
                user posted image
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0253 ]   [ 17 queries used ]   [ Generated: 19.03.24, 09:27 GMT ]