Giter Site home page Giter Site logo

glavin001 / csci3465-assignment3 Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 344 KB

Develop one (or more) versions of the "fridge magnet" client/server application.

Home Page: http://glavin001.github.io/CSCI3465-Assignment3/Assignment3/doc/

License: MIT License

CSS 8.19% Java 91.81%

csci3465-assignment3's Introduction

Develop the "fridge magnet" client/server application.

screenshot

Download

Please see the Releases for precompiled builds.

Grading

See assignment at http://cs.smu.ca/~jdeveaux/csci/3465/2014/assign3.html

Features

Full Details

Develop one (or more) versions of the "fridge magnet" client/server application. Your fridge (server) contains letters placed randomly on the door. Your kids (clients) will approach the fridge and be allowed to move some of the letters. Multiple kids can move letters on the fridge (although not necessarily the same letter) simultaneously When one kid moves a letter, all of the other kids will see that letter move, in real time When a kid leaves the fridge, the fridge doesn't fall to pieces (graceful connection termination)

This assignment is meant to be written in a client/server style as a variation of the Observer pattern as demonstrated in the ChatClient/ChatServer programs.

At the very least, you must implement this application using Sockets to establish the client/server connection. Bonus marks will be awarded for including a version where the client and server communicate with each other using RMI or SocketChannels

Provide DETAILED INSTRUCTIONS on how to get the client and server to communicate to each other:

  • On the same machine
  • On separate machines

Be sure to include your name in the corner of your frame!

Notes: Your assignments will be marked based on the effectiveness of your solution, as well as the way your make use of classes and interfaces in your solution.

Documentation

JavaDoc

See http://glavin001.github.io/CSCI3465-Assignment3/Assignment3/doc/

Usage Instructions

Server CLI (Fridge)

java -jar FridgeServer.jar <port>
Optional Arguments
  • port - Default is 6666.
Basic Example Usage

Open and execute the FridgeServer.jar file or run the following command:

java -jar FridgeServer.jar
Advanced Example Usage
java -jar FridgeServer.jar 6666

Client CLI (Kid)

java -jar KidClient.jar <hostname> <port>
Optional Arguments

Note that both arguments must be used or they will not be applied.

  • hostname - Default is "localhost".
  • port - Default is 6666.
Basic Example Usage

Open and execute the KidClient.jar file or run the following command:

java -jar KidClient.jar
Advanced Example Usage
java -jar KidClient.jar localhost 6666

Same Machine

Using defaults: Hostname = "localhost", Port = 6666

  1. Start the Fridge (Server) .jar executible.

  2. Start the Kid (Client) .jar executible.

  3. Repeat step 2 for as many clients as desired.

Separate Machines

The important change is that you now must specify a different IP address (and possibly port number) for your Client (Kid) to lookup the Server (Fridge).

  1. Start the Fridge (Server) .jar executible. Take note of the Server's IP address. See How to Find Your Local and External IP Address.

  2. Start the Kid (Client) .jar executible with the command-line arguments for the hostname (Server's IP) and port used when starting the server above.

  3. Repeat step 2 for as many clients as desired.

csci3465-assignment3's People

Contributors

glavin001 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.