Показать сообщение отдельно
  #3  
Старый 14.04.2010, 15:54
beavi5 beavi5 вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 49
Репутация: 12
По умолчанию

ansistring не помог.

гдето на форумах увидел мисагу типа
Код:
В idUDP, если не ошибаюсь, по дефолту используется TEncoding.ASCII и с ним как раз все русские символы приходят в виде $3F, причем "бьются" они в момент преобразования к массиву байт. А если отправлять вот так: 

IdUDPClient.Send('Проверка Test', TEncoding.UTF8);
то нормально:)

но у Сэнда нету такого параметра как Tencoding...

Но я упрямый и
методом про6 и оши6ок выяснил что idUDPClient.send отправляет текст непонятно какой кодировкой ( по идее должен 6ыть юникод..) и не понятно как. По этому отсылаемый текст я сначало конвертировал в байты ( bytesof()) а потом отослал его через idUDPClient.SentBuffer() и вуа-ля все канает .)

код клиента
Код:
procedure TForm4.Button2Click(Sender: TObject);
begin
idUDPClient1.SendBuffer(bytesof(nick+'^ '+edit1.Text));
edit1.Clear;
end;

код сервера
Код:
procedure TForm4.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TBytes; ABinding: TIdSocketHandle);
begin
memo1.Lines.Add (stringof(aData));
end;



но если кто знает как это все о6ойти и сделать проще, или как использовать TEncoding, прось6а отписать .))
Ответить с цитированием