Name
readBytesUntil()
Class
Client
Description
Reads from the port into a buffer of bytes up to and including a particular character. If the character isn't in the buffer, 'null' is returned. The version with no byteBuffer parameter returns a byte array of all data up to and including the interesting byte. This is not efficient, but is easy to use. The version with the byteBuffer parameter is more memory and time efficient. It grabs the data in the buffer and puts it into the byte array passed in and returns an int value for the number of bytes read. If the byte buffer is not large enough, -1 is returned and an error is printed to the message area. If nothing is in the buffer, 0 is returned.
Examples
// Creates a client that listens for input // until it gets a linefeed character, and puts // the bytes it gets into a byte[] buffer. import processing.net.*; Client myClient; byte[] byteBuffer = new byte[12]; byte interesting = 10; void setup() { size (300, 100); // Connect to the local machine at port 10002. // This example will not run if you haven't // previously started a server on this port. myClient = new Client(this, "127.0.0.1", 10002); } void draw() { if (myClient.available() > 0) { background(0); // Read until we get a linefeed int byteCount = myClient.readBytesUntil(interesting, byteBuffer); // Convert the byte array to a String String myString = new String(byteBuffer); // Display the string println(myString); } }
Syntax
client.readBytesUntil(interesting)
client.readBytesUntil(interesting, byteBuffer)
Parameters
client
(Client)
any variable of type Clientinteresting
(int)
character designated to mark the end of the databyteBuffer
(byte[])
passed in byte array to be altered
Return
byte[] or int
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.