You are on page 1of 25

Broadcasting ChatServer

An Instant Messaging Software Using Java


Broadcasting Chat Server is an application through which the user can communicate with
other users connected in the same network area (LAN).

This works under any operating system and is programmed in java.

To establish a communication between the systems, we need simple socket connections in

order to connect them in a network.

Socket programming uses the client socket and server socket methods to connect the local
host to the named host and port

The communication between various users is done using server client model i.e. Client-Server

Several client machines are connected to their dedicated server ports and communication is

Instant Messaging (IM)

IM is a set of communication technologies used for text-based communication

between two or more participants over the Internet or other types of networks.

IMchat happens in real-time.

IM allows effective and efficient communication, allowing immediate receipt of

acknowledgment or reply.

In many cases, instant messaging includes added features which can make it
even more popular. For example Video Conferencing, Internet Calling, etc.

Many such IM Applications are Google Hangouts, WhatsApp Messenger,

Facebook Messenger, etc.

Advantages of Broadcast Chat-Server

over Instant Messaging

A Broadcasting Chat Server is an instant messaging program designed for

use within a single local area network (LAN).

Broadcasting Chat Server runs inside a company or private LAN, and so an

active Internet connection or a central server is not required (P2P).

Only people who are inside the firewall will have access to the system.

Communication data does not leave the LAN.

And also the system cannot be spammed from the outside.

Risks in Broadcasting Chat Server

Security Risks: IM connections usually occur in plain text, making them vulnerable
to eavesdropping. Also, IM client software often requires the user to expose open UDP
ports to the world, raising the threat posed by potential security vulnerabilities.

Compliance Risks: In addition to the malicious code threat, the use of instant
messaging at work also creates a risk of non-compliance to laws and regulations
governing use of electronic communications in businesses.

Inappropriate Risks: Organizations of all types must protect themselves from the
liability of their employees' inappropriate use of IM. The informal, immediate, and
ostensibly anonymous nature of instant messaging makes it a candidate for abuse in
the workplace.

Programming Environment
Java is used as the programming language for this Project

Why Java?

The Java programming language is a high-level language that can be

characterized by all of the following buzzwords:


Object oriented



Architecture neutral


High performance



Benefits of Java

Java comes with a large set of classes and methods, the Java API that can be used without having to
develop as much code from scratch.

Unlike C, Java primitive types, such as int, are always the same size in the number of bits which helps
achieve cross-platform compatibility

Java has exception-handling that requires a programmer to handle error-conditions such an Input/Output

Code compiles on one Java platform can be run on other platforms that support Java without
modification of either the source-code nor the byte-code. For example, this means that a person can
make a Java program for a Windows computer and have it run a Linux computer or a Mac computer.

Java consists of a package which supports a simplified, object-oriented socket interface that
makes network communications considerably easier.

Java Bytecode

Java bytecodes help make "write once, run

anywhere" possible.

With most programming languages, you either

compile or interpret a program so that you can
run it on your computer but in Java, a program
is both compiled and interpreted.

With the compiler, first you translate a program

into an intermediate language called Java
bytecodes the platform-independent codes
interpreted by the interpreter on the Java

The interpreter parses and runs each Java

bytecode instruction on the computer.

Compilation happens just once; interpretation

occurs each time the program is executed.

The Java Platform

A platform is the hardware or software environment in which a program runs.

Most platforms can be described as a combination of the operating system and


The Java platform differs from most other platforms in that it's a software-only
platform that runs on top of other hardware-based platforms.

The Java platform has two components:

The Java Virtual Machine (Java VM)

The Java Application Programming Interface (Java API)

The Java API is grouped into libraries of related classes and interfaces; these
libraries are known as packages.

Networking Classes in

Through the classes in,

Java programs can use TCP or
UDP to communicate over the

By using the

class instead of relying on native
code, your Java programs can
communicate over the network in
a platform-independent fashion.

Additionally, includes the

ServerSocket class, which
implements a socket that servers
can use to listen for and accept
connections to clients.

Client-Server Architecture Model

Client-Server Architecture Model

The client-server architecture model distinguishes Client (computing) systems

from Server (computing) systems, which communicate over a Computer network.

A client-server application is a Distributed system comprised of both client and

server software.

A client software process may initiate a communication session, while the server
waits for requests from any client.

In a network, the client/server model provides a convenient way to efficiently

interconnect programs that are distributed across different locations.

Most Internet applications, such as email, web access and database access, are
based on the client/server model. For example, a Web browser is a client program
at the user computer that may access information at any web server in the world.

Click icon to add picture

Client-Server Architecture Model

What is a Server?

A server computer is a computer dedicated to

running a server application.

A server application is a Computer program that

accepts Computer network connections in order
to service requests by sending back responses.

Servers can be run on a dedicated computer, but

many networked computers are capable of
hosting servers. In many cases, a computer can
provide several services and have several
servers running.

Servers are computer programs running to serve

the requests of other programs, theclients. Thus,
the server performs some task on behalf of
clients. The clients typically connect to the
server through the network but may run on the
same computer. In the context ofInternet
Protocol(IP) networking, a server is a program
that operates as asocketlistener.

What is a Client?

A client is an Application software or

system that accesses a remote
service on another Computer
system, known as a Server
computing, by way of a Network.

Client is a user system which uses

its server to get its program or
action executed.

Concepts of Java required in this


To have a basic server client connection through Java programming

language, we need the following concepts of java:

Network Packages

Thread Classes

AWT Tool Kit

Event Handling

Diagrams and Outputs

Client Service Request

Client requests service to Server

and Server grants the request
through a response.

Client Registration

Client has to first register

himself in the server to begin
chatting. Server encrypts the
PSWD and client is registered,
welcome message prompted by

Create a New Room and


Client can send offline messages

to other clients, server stores
and forwards the messages
when other users log on.

Client Logout

Client logs out of chat, server

notifies & updates all other users
by a message.

Server Shutdown

Server shuts down by sending

message and closes connection
by giving a prompt.

Future Improvements

Making it more secure by providing password protection. We can handle user data
separately proving them password access. We can also improvise it for private
conversation with a user selected user.

Presently the project runs on the local network i.e. LAN or local wireless network but later
we can make this run on internet by providing public IP address and making it run global.

Various emotions and smilies can also be added.

It can be enhanced in the field of voice chatting using VoIP Protocol and thus introduce
telecommunication through chatting software.

It can also be enhanced in the field of Video Conferencing

The End

Summer Training Project Presentation on Broadcasting Chat-Server

submitted in partial fulfilment of the requirement for the award of degree
of Bachelor in Technology in Computer Science of Engineering.

Submitted by:

Yatharth Manocha

Aamir Mustafa

Himanshu Tyagi

5th Semester