/** * 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]); } }