Processing:Библиотеки/Network/Класс Client/readBytesUntil()
Материал из Онлайн справочника
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Черновик |
readBytesUntil()[1]
Описание
Считывает данные из порта в буфер до заданного символа (включая его самого). Если этого символа в буфере нет, функция вернет null. Версия без параметра byteBuffer возвращает массив байтов со всеми данными до байта interesting (включая его самого). Это не слишком эффективно, но зато просто. Версия с параметром byteBuffer работает быстрее и менее требовательна к памяти. Она считывает данные из буфера, помещает их в массив байтов, заданный в параметре byteBuffer, и возвращает значение int, отвечающее за количество считанных байтов. Если байтовый буфер недостаточно велик, функция вернет «-1», а в текстовой области будет напечатано сообщение об ошибке. Если в буфере ничего нет, функция вернет «0».
Синтаксис
client.readBytesUntil(interesting)
client.readBytesUntil(interesting, byteBuffer)
Параметры
client – любая переменная типа Client. Тип данных – Client
interesting – символ, на котором нужно завершить считывание данных. Тип данных – int
byteBuffer – массив байтов, в который нужно сохранить данные. Тип данных – byte[]
Возвращаемое значение
Тип данных – byte[] и int.
Пример
// Этот скетч-пример создает клиента,
// который прослушивает входящие данные до тех пор,
// пока не наткнется на специальный символ,
// а затем помещает считанные байты в буфер byte[].
import processing.net.*;
Client myClient;
byte[] byteBuffer = new byte[12];
byte interesting = 10;
void setup() {
size (300, 100);
// Подключаемся к локальной машине через порт 10002.
// Этот скетч-пример не запустится,
// если вы ранее не запустили сервер на этом порте.
myClient = new Client(this, "127.0.0.1", 10002);
}
void draw() {
if (myClient.available() > 0) {
background(0);
// считываем, пока не натыкаемся на заданный символ:
int byteCount = myClient.readBytesUntil(interesting, byteBuffer);
// конвертируем массив байтов в String:
String myString = new String(byteBuffer);
// показываем эту String в консоли:
println(myString);
}
}