topical media & game development

talk show tell print

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.