topical media & game development
graphic-processing-site-examples-Libraries-Network-SharedCanvasServer-SharedCanvasServer.pde / pde
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]);
}
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.