0% found this document useful (0 votes)
62 views2 pages

IT 328 Project: Socket Programming

This document outlines an assignment to design and implement a basic instant messaging (IM) system with client and server components using Java sockets. The IM system should allow for real-time text conversations between multiple users connected over a network. Students will gain experience with Java networking, sockets, input/output, threads, and graphical user interfaces. The goal is to create an IM client application with a GUI and a server that can manage open connections and conversations between clients.

Uploaded by

Temm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views2 pages

IT 328 Project: Socket Programming

This document outlines an assignment to design and implement a basic instant messaging (IM) system with client and server components using Java sockets. The IM system should allow for real-time text conversations between multiple users connected over a network. Students will gain experience with Java networking, sockets, input/output, threads, and graphical user interfaces. The goal is to create an IM client application with a GUI and a server that can manage open connections and conversations between clients.

Uploaded by

Temm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

King Saud University

College of Computer and Information Sciences


Department of Information Technology

IT 328 Project
Socket Programming
Weighting of this coursework towards the Module 10%
mark (%):

Outline of The common language of the Internet is IP. Programmers who create
Problem networked applications typically interface with IP via either the User Datagram
Protocol (UDP) or the Transmission Control Protocol (TCP). Sockets offers an
Application Programming Interface to both UDP and TCP. In this assignment you
are to investigate the Sockets interface and produce a small networked
application as outlined below.

Problem Instant messaging (IM) is a staple of the web and has been around almost since
its inception, starting with simple text-based programs like talk and IRC and
progressing to today's GUI-based IM clients from Yahoo, Microsoft, AOL, etc. In
this project you will design and implement an IM system, including both the client
and the server. The following characteristics constrain the design space of an IM
system:
 Real-time communication. An IM conversation happens in real time:
one person types some text, presses "enter," and the other person
(almost) immediately sees the text.
 Number of parties. An IM conversation can happen between two or
more people. Some systems only allow two people to communicate;
others allow more than two people. Most systems allow a person to be
involved in multiple conversations at the same time.
 Based on typed text. The main mode of communication is via text, as
opposed to voice or video.
 Connected over a network. The parties involved in the communication
may be in physically remote locations, and are connected over the
internet.
Your task will be to design an instant messaging system with the above
properties, as well as additional properties that you will incorporate into your
design. This system will include a server component that handles the transfer of
messages and other data, and a client component with a graphical user interface.
Purpose The purpose of this project is twofold.

 First, you will learn several Java technologies, including networking (to
support connectivity over a network), sockets and I/O (to support real-
time, text-based communication), and threads (to support two or more
people communicating concurrently). State machines may be useful to
specify certain aspects of the system's behavior.
 Second, this project will introduce you to the state-of-the-art for enabling
human-computer interaction: graphical user interfaces. You will:
o become familiar with Swing, a graphical user interface (GUI) toolkit
for Java, that is similar to many other such toolkits;
o learn important GUI programming concepts, including the notion of
a view hierarchy and the model-view-controller design pattern;
o use event-based programming and the publish-subscribe pattern;
o use object modeling notation to explore and express these
structures;
o And confront user interface design challenges.

Throughout the project, you will need to design and implement mutable
datatypes, paying particular attention to their specifications and how they interact
with one another.
Specification Implement an IM system in Java with the following properties:
 Client. The client is a program that opens a network connection with the
IM server at a specified IP address and port number. Once the connection
is open, the client program presents a graphical user interface for
performing the interactions listed below.
 Server. The server is a program that accepts connections from clients. A
server should be able to maintain an unlimited number of open client
connections, and clients should be able to connect and disconnect as they
please.
The server is responsible for managing the state of both clients
and conversations.
 Conversations. A conversation is an interactive text-exchange session
between some number of clients and is the ultimate purpose of the IM
system. The exact nature of a conversation is not specified, except to say
that it allows clients to send text messages to each other. Messaging in a

You might also like