Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.54.7] |
|
Сообщ.
#1
,
|
|
|
indy UDP server
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. Нужно что-то ставить, и входной буфер что из чего нужно декодить? Добавлено Если кому надо: IdUDPServer1.Send('10.10.1.255',50000,'<USERNAME>'+'Дима',IndyTextEncoding_UTF8); RecieveBuf:=BytesToString(AData,enUTF8); |
Сообщ.
#2
,
|
|
|
Можно в любой кодировке, главное - чтобы у обоих концов она была одинакова
|
Сообщ.
#3
,
|
|
|
Цитата Fr0sT @ чтобы у обоих концов она была одинакова Если я делаю без указания IndyTextEncoding_UTF8, то судя по снифферу вместо Дима идут одинаковые символы IdUDPServer1.Send('10.10.1.255',50000,'<USERNAME>'+'Дима'); |
Сообщ.
#4
,
|
|
|
Цитата ^D^ima @ судя по снифферу вместо Дима идут одинаковые символы Если эти символы - ?, то это стандартная замена некодируемых в целевой кодировке символов |
Сообщ.
#5
,
|
|
|
WireShark что говорит? Какие байты реально в сетку посылаются?
|
Сообщ.
#6
,
|
|
|
Mr.Delphist
Спасибо, вопрос решен 10 июня, написано в первом посте и стоил галка "вопрос решен". |
Сообщ.
#7
,
|
|
|