Hello,

I am a java learner and have just started learing java by follwing the online tutorials.
I am a computer science student and as a part of our assisgnment, I have to design a online CHat system in java.

TBH, I have no clue of what to learn and what should I do :(

Here is the project details

Quoted Text Here

Project Details:
In this assignment students will explore basic socket programming, threading and GUI design using Java’s
network library, threading system, and swing user interface libraries to implement a basic chat client and
server system. The system will allow multiple, remote users to send and receive messages across the
network. On receiving a send message from a client the server component will broadcast the message to the
other clients connected to the server. Consequently, the server component must be multithreaded so as to
coordinate communications between the client systems.

Part A - Basic Requirements: 65%
The basic requirements of this assignment are to implement the client and server components as discussed
above.
The basic protocol of the system is described below:
The operations of the client are:
• SEND_SERVER_MESG: send a basic text message to the server
• RECV_ SERVER_MESG: receive text from the server
The operations of the server are:
• RECV_CLIENT_MESG: receive text from a client
• BROADCAST_MESG: broadcast a text message received from a client to all the other clients
connected to the server.
The server component should be multithreaded, and new threads should be allocated and de-allocated when
clients connect and disconnect from the server. These threads can be thought of as connection handlers
which manage a client socket and input, output streams. To keep track of these handlers some sort of
dynamic data structure such as a vector or similar data structure can be used to coordinate access to these
message handlers. The client component should be implemented as a GUI interface, and should allow users
to enter text messages, display broadcast messages from the server, and send messages using a send button.
The diagram below reflects a typical implementation:
Message.SEND
Client
Message.RECIEVE
Connection
Handlers
Server2

Part B - Extensions: 35%
Basic implementation of the assignment requirements will result in only a passing grade or credit result. To
get a distinction or high distinction mark several extensions are possible and include:
• username/password logon
• private messaging between users
• discussion channels
• block/ignore user
• efficient thread pool
• display IP address/nickname of other chat
clients
• enhanced GUI
• file transfer options

Quoted Text Here

I am willing to do this project by myself rather than copying it from the net or getting it doNE.
Can you please give me hints or tips as to what I should learn and how I should go with it.

Any help is appriciated.

Thank You very much

Recommended Answers

All 2 Replies

The details section has a good list for starting:
basic socket programming,
threading and
GUI design
using Javasnetwork library, threading system, and swing user interface libraries

and more here:
keep track of these handlers some sort of dynamic data structure such as a vector or similar data structure

Well the project description gives you an idea on what to research. I would recommend looking up each of key concepts listed in this assignment. I to an a Computer Science student and I have just started Java so I will do some research and let you know what I find. I create a program like this in Visual Basic but I am not advanced in Java enough to just throw a solution at you. Good luck and I will be back to post my findings.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.