mirror of
https://github.com/processing/processing4.git
synced 2026-01-28 02:41:08 +01:00
47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
/**
|
|
* Shared Drawing Canvas (Client)
|
|
* by Alexander R. Galloway.
|
|
*
|
|
* The Processing Client class is instantiated by specifying a remote
|
|
* address and port number to which the socket connection should be made.
|
|
* Once the connection is made, the client may read (or write) data to the server.
|
|
* Before running this program, start the Shared Drawing Canvas (Server) program.
|
|
*/
|
|
|
|
|
|
import processing.net.*;
|
|
|
|
Client c;
|
|
String input;
|
|
int data[];
|
|
|
|
void setup()
|
|
{
|
|
size(450, 255);
|
|
background(204);
|
|
stroke(0);
|
|
frameRate(5); // Slow it down a little
|
|
// Connect to the server's IP address and port
|
|
c = new Client(this, "127.0.0.1", 12345); // Replace with your server's IP and port
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
if (mousePressed == true) {
|
|
// Draw our line
|
|
stroke(255);
|
|
line(pmouseX, pmouseY, mouseX, mouseY);
|
|
// Send mouse coords to other person
|
|
c.write(pmouseX + " " + pmouseY + " " + mouseX + " " + mouseY + "\n");
|
|
}
|
|
// Receive data from server
|
|
if (c.available() > 0) {
|
|
input = c.readString();
|
|
input = input.substring(0, input.indexOf("\n")); // Only up to the newline
|
|
data = int(split(input, ' ')); // Split values into an array
|
|
// Draw line using received coords
|
|
stroke(0);
|
|
line(data[0], data[1], data[2], data[3]);
|
|
}
|
|
}
|