Chat Server

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 16





INTRODUCTION
Chatting Application is a desktop based application.

This client server chat application is based on java swing and used socket package.

its simple and easy and require only core java knowledge. I have taken this program

from internet and modified a little bit to make it simpler and more elegant.

This application/program is a good example of using java.io, java.net package to

create a chat application. A beginner of java language, who is familiar with this

packages can able, be beneficiate.

Chatting is a method of using technology to bring people and ideas “together” despite of the

geographical barriers. The technology has been available for years but the acceptance it was

quit recent. Our project is an example of a multiple client chat server.

It is made up of 2 applications the client application, which runs on the user’s Pc and server

application ,which runs on any Pc on the network. To start chatting client should get

connected to server. We will focus on TCP and UDP socket connections which are a

fundamental part of socket programming.

Keywords: sockets, client-server, Java network programming-socket functions, Multicasting

etc.
MAIN OBJECTIVE
The aim of this project is to express how we can implement a simple chat application

between a server and a client? The application is a desktop based application and is

implemented using Swing and awt. The project is developed in Java SE language

executed on a single stand-alone java across a network using loop back address

concept.

Application consists of two programs:

Server

Client

Server:
The server module of the application waits for the client to connect to it. Then if

connection is granted a client interacts communicates and connects to the server, it

can mutually communicate with the server. The duty of the server is to let clients

exchange the messages.

Client:
The client module is the one that utilizer sends requests to the server. Utilizer utilizes

the client as the means to connect to the server. Once he establishes the connection,

he can communicate to the connected server.


REQUIREMENTS

Hardware

 Processor Intel core i3 and AMD Ryzen 3 or Above

 Color Monitor

 Keyboard

 10 GB Hard disk drive or above

 64 MB RAM or above

Software

 Microsoftwindow-7to or above

 Java 6.0 or above


MODULES

The entire project mainly consist of 3 modules, which are:-

 Administration modules

 Sever module

 User Management module

MODULES DESCRIPTION:

Administration Modules:
This module is used to register new user records, view, edit and
delete user record, enable user and disable User.

Server Module:
It is used to enter server name (pc name) where server is running.

User Management Module:


This module has two sub modules and they are given below.
What is a data flow diagram?

A data flow diagram (DFD) maps out the flow of information for any process or system. It uses defined symbols

like rectangles, circles and arrows, plus short text labels, to show data inputs, outputs, storage points and the

routes between each destination. Data flowcharts can range from simple, even hand-drawn process overviews,

to in-depth, multi-level DFDs that dig progressively deeper into how the data is handled. They can be used to

analyze an existing system or model a new one. Like all the best diagrams and charts, a DFD can often visually

“say” things that would be hard to explain in words, and they work for both technical and nontechnical

audiences, from developer to CEO. That’s why DFDs remain so popular after all these years. While they work

well for data flow software and systems, they are less applicable nowadays to visualizing interactive, real-time

or database-oriented software or system

Data flow diagram symbols

 Symbol Description

Data Flow – Data flow are pipelines through the packets of information flow.

  Process : A Process or task performed by the system.

  Entity : Entity are object of the system. A source or destination data of a system.

  Data Store : A place where data to be stored.


ZERO LEVEL DFD
FIRST LEVEL DFD
SECOND LEVEL DFD
E-R DIAGRAM

What is ER Diagram?
ER Diagram stands for Entity Relationship Diagram, also known as ERD is a diagram that

displays the relationship of entity sets stored in a database. In other words, ER diagrams help

to explain the logical structure of databases. ER diagrams are created based on three basic

concepts: entities, attributes and relationships.

ER Diagrams contain different symbols that use rectangles to represent entities, ovals to

define attributes and diamond shapes to represent relationships.

At first look, an ER diagram looks very similar to the flowchart. However, ER Diagram

includes many specialized symbols, and its meanings make this model unique. The purpose

of ER Diagram is to represent the entity framework infrastructure.


E R Diagram Database
Project Scope
This project can be mainly divided into two modules:

1. Server

2. Client

This project is mainly depended on client/server model. The client requests the server and server

responses by granting the clients request. The proposed system should provide both of the above

features along with the followed ones:

1. Server

A server is a computer program that provides services to other computer programs (and their users) in the same or other

computers. The computer that a server program runs in is also frequently referred to as a server. That machine may be a

dedicated server or used for other purposes as well. Example Server, Database, Dedicated, Fileserver, Proxy Server, Web

Server. The server is always waiting for client’s requests. The client come and go down but the server remains the same.

A server application normally listens to a specific port waiting for connection requests from a client. When a connection

request arrives, the client and the server establish a dedicated connection over which they can communicate. During the

connection process, the client is assigned a local port number, and binds a socket to it. The client talks to the server by

writing to the socket and gets information from the server by reading from it. Similarly, the server gets a new local port

number (it needs a new port number so that it can continue to listen for connection requests on the original port). The

server also binds a socket to its local port and communicates with the client by reading from and writing to it. The client

and the server must agree on a protocol that is, they must agree on the language of the information transferred back and

forth through the socket. Normally, a server runs on a specific computer and has a socket that is bound to a specific port

number. The server just waits, listening to the socket for a client to make a connection request.
2.Client

On the client site the client knows the hostname of the machine on which the server is running and

the port number on which the server is listening.

To make a connection request, the client tries to rendezvous with the server on the server's machine

and port. The client also needs to identify itself to the server so it binds to a local port number that it

will use during this connection. This is usually assigned by the system.

The model used for this project is the single server –

Single client models.

The following specifications must be implemented:

1. The server and client are two separate programs.


Future work

There is always a room for improvements in any software package, however good and

efficient it may be done. But the most important thing should be flexible to accept further

modification. Right now we are just dealing with text communication. In future this software

may be extended to include features such as:

Files transfer: this will enable the user to send files of different formats to others via the

chat application.

Voice chat: this will enhance the application to a higher level where communication will be

 possible via voice calling as in telephone.

Video chat: this will further enhance the feature of calling into video communication.

Conclusion
I Developed network applications in Java by using sockets, threads, and Web services.

These software is portable, efficient, and easily maintainable for large number of clients. Our

developed web-based chatting software is unique in its features and more importantly easily

customizable. The java.net package provides a powerful and flexible set of classes for implementing

network applications. Typically, programs running on client machines make requests to programs on a

server Machine. These involve networking services provided by the transport layer. The most widely

used transport protocols on the Internet are TCP (Transmission control Protocol) and UDP (User

Datagram Protocol).

TCP is a connection-oriented protocol providing a reliable flow of data between two computers. On

the other hand, UDP is a simpler message-based connectionless protocol which sends packets of data

known as datagrams from one computer to another with no guarantees of arrival.

You might also like