Как я могу получить правильную строку из байтового массива, который передается DatagramSocket - PullRequest
1 голос
/ 31 октября 2011

вот код, которым я отправляю строку:

byte[] buffer = txtAreaSendText.getText().getBytes();// Point A
DatagramPacket dp = new DatagramPacket(buffer,buffer.length,remoteAddr, remoteTextPort);
udpSocket.send(dp);

и вот мой код для получения строки:

byte[] buffer = new byte[1024];
DatagramPacket dp = new DatagramPacket(buffer, 1024);
try {
    udpSocket.receive(dp);
    String txtString = dp.getData().toString();
} catch (IOException e) {
    e.printStackTrace();
}

Я пытаюсь исправить код, изменив код в точке A:

byte[] buffer = txtAreaSendText.getText().getBytes("utf-8");

но я также не могу получить правильную строку.

Кроме того, моя стандартная кодировка рабочей области eclipse - utf-8, а также файл java.

1 Ответ

2 голосов
/ 31 октября 2011

но я также не могу получить правильную строку.

Что ты получаешь?

Судя по всему, вы вызываете toString() в байтовом массиве, и он, вероятно, возвращает тип класса в виде строки (или чего-то подобного).

Я считаю, что вы должны делать следующее:

byte[] data = dp.getData()
String txtString = new String(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...