DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(), clientAddr, 6000);
String s = new String(packet.getData(), 0, packet.getLength());
System.out.println("DEBUG: data=" + data);
System.out.println("DEBUG: data.length()=" + data.length());
System.out.println("DEBUG: packet.getLength()=" + packet.getLength());
System.out.println("DEBUG: s=" + s);
System.out.println("DEBUG: s.length()=" + s.length());;
проблема с извлеченим данных из DatagramPacket
Код таков:
Код:
data - довольно длинная строка
аутпут от этого всего дела:
DEBUG: data=<?xml version="1.0" encoding="UTF-8"?><Depot><Material><id>2</id><name>Кирпич красный</name><weight dimension="кг">1</weight><provider>ОАО Рога и копыта</provider><description>Нормальный такой кирпич</description><count>100</count></Material></Depot>
DEBUG: data.length()=250
DEBUG: packet.getLength()=250
DEBUG: s=<?xml version="1.0" encoding="UTF-8"?><Depot><Material><id>2</id><name>Кирпич красный</name><weight dimension="кг">1</weight><provider>ОАО Рога и копыта</provider><description>Нормальный такой кирпич<
DEBUG: s.length()=200
кто-нибудь знает в чем дело?
Цитата: A.D.I.D.A.S
Столкнулся с такой проблемой: при складывании строки в DatagramPacket она не полностью оттуда извлекается, даже не пересылая по сети этот пакет.
Строка - это набор юникодных символов. Вы думаете юникодный символ занимает в памяти 1 байт? Готов поспорить, что в вашем случае это не так.
Вы складываете data.getBytes() но почему-то указываете что всего этих байтов data.length(). А это разные числа.
Спасибо большое!