mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 19:31:16 +01:00
51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
/**
|
|
* Shared Drawing Canvas (Server)
|
|
* by Alexander R. Galloway.
|
|
*
|
|
* A server that shares a drawing canvas between two computers.
|
|
* In order to open a socket connection, a server must select a
|
|
* port on which to listen for incoming clients and through which
|
|
* to communicate. Once the socket is established, a client may
|
|
* connect to the server and send or receive commands and data.
|
|
* Get this program running and then start the Shared Drawing
|
|
* Canvas (Client) program so see how they interact.
|
|
*/
|
|
|
|
|
|
import processing.net.*;
|
|
|
|
Server s;
|
|
Client c;
|
|
String input;
|
|
int data[];
|
|
|
|
void setup()
|
|
{
|
|
size(450, 255);
|
|
background(204);
|
|
stroke(0);
|
|
frameRate(5); // Slow it down a little
|
|
s = new Server(this, 12345); // Start a simple server on a port
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
if (mousePressed == true) {
|
|
// Draw our line
|
|
stroke(255);
|
|
line(pmouseX, pmouseY, mouseX, mouseY);
|
|
// Send mouse coords to other person
|
|
s.write(pmouseX + " " + pmouseY + " " + mouseX + " " + mouseY + "\n");
|
|
}
|
|
// Receive data from client
|
|
c = s.available();
|
|
if (c != null) {
|
|
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]);
|
|
}
|
|
}
|