Professional Documents
Culture Documents
PROFILE
1.1
ABOUT IRDE
Brief Historical Background
1.2
AREAS OF WORK
1.3
PRESENT SCENARIO
1.4 BALLISTIC
COMPUTER DIVISION
Client-Server
In Computer science client-server is a software architecture model
consisting of two parts, client systems and server systems, both
communicating over a computer network or on the same computer. A
client-server application is a distributed system made up of both client
and server software. The client process always initiates a connection to
the server, while the server process always waits for requests from any
client. When both the client process and server process are running on
the same computer, this is called a single seat setup.
Another type of related software architecture is known as peer-to-peer,
because each host or application instance can simultaneously act as both
a client and a server (unlike centralized servers of the client-server
model) and because each has equivalent responsibilities and status. Peerto-peer architectures are often abbreviated using the acronym P2P.
The client-server relationship describes the relation between the client
and how it makes a service request to the server, and how the server can
accept these requests, process them, and return the requested information
to the client. The interaction between client and server is often described
using sequence diagrams. Sequence diagrams are standardized in the
Unified Modeling Language.
Both client-server and P2P architectures are in wide usage today.
The basic type of client-server architecture employs only two types of
hosts: clients and servers. This type of architecture is sometimes referred
to as two-tier. The two-tier architecture means that the client acts as one
tier and server process acts as the other tier.
7
2.1
2.2
Clients Characteristics
Always initiates requests to servers.
Waits for replies.
Receives replies.
Usually connects to a small number of servers at one time.
Usually interacts directly with end-users using any user interface
such as graphical user interface.
Server Characteristics
A server may receive requests from many different clients in a very short
period of time. Because the computer can perform a limited number of
10
11
4.1
TCP SERVER
INTRODUCTION
4.2
Network Function
TCP is optimized for accurate delivery rather than timely delivery, and
therefore, TCP sometimes incurs relatively long delays (on the order of
seconds) while waiting for out-of-order messages or retransmissions of
lost messages. It is not particularly suitable for real-time applications
such as Voice over IP. For such applications, protocols like the Real-time
Transport Protocol (RTP) running over the User Datagram Protocol
(UDP) are usually recommended instead.
13
TCP is a reliable stream delivery service that guarantees that all bytes
received will be identical with bytes sent and in the correct order. Since
packet transfer over many networks is not reliable, a technique known as
positive acknowledgment with retransmission is used to guarantee
reliability of packet transfers. This fundamental technique requires the
receiver to respond with an acknowledgment message as it receives the
data. The sender keeps a record of each packet it sends. The sender also
maintains a timer from when the packet was sent, and retransmits a
packet if the timer expires before the message has been acknowledged.
The timer is needed in case a packet gets lost or corrupted.
While IP handles actual delivery of the data, TCP keeps track of the
individual units of data transmission, called segments, that a message is
divided into for efficient routing through the network. For example,
when an HTML file is sent from a web server, the TCP software layer of
that server divides the sequence of octets of the file into segments and
forwards them individually to the IP software layer (Internet Layer). The
Internet Layer encapsulates each TCP segment into an IP packet by
adding a header that includes (among other data) the destination IP
address. When the client program on the destination computer receives
them, the TCP layer (Transport Layer) reassembles the individual
segments and ensures they are correctly ordered and error free as it
streams them to an application.
14
TCP communication
15
INTRODUCTION OF
PROJECT
5.1
ABSTRACT
The Project Client Server Chat Using QT deals with communication between
the Server and multiple Clients using the Telnet. This software focuses on sending
message from the client to the server, where multiple client can communicate with
the server.This software can also be used for chatting between server and a
client.
Since,communication has been the field of exploring as much as possible. Thus
establishing communication and sending and receiving data through Qt has been
the interesting work in the project.
16
5.2
OBJECTIVE
Thus, the main idea behind the project is to understand the most used feature of
communication between the server and multiple clients using the Tcp server.
17
5.3
QT Software
Qt uses standard C++ with extensions including signals and slots that
simplifies handling of events, and this helps in development of both GUI
and server applications which receive their own set of event information
and should process them accordingly. Qt supports many compilers,
including the GCC C++ compiler and the Visual Studio suite. Qt also
provides Qt Quick, that includes a declarative scripting language called
QML that allows using JavaScript to provide the logic. With Qt Quick,
18
19
Software Architecture
Qt, when it was first released, relied on a few key concepts:
Complete abstraction of the GUI When first released, Qt used its
own paint engine and controls, emulating the look of the different
platforms it runs on when it drew its widgets. This made the porting
work easier because very few classes in Qt depended really on the target
platform; however, this occasionally led to slight discrepancies where
that emulation was imperfect. Recent versions of Qt use the native style
APIs of the different platforms, on platforms that have a native widget
set, to query metrics and draw most controls, and do not suffer from
such issues as much.On some platforms (such as MeeGo and KDE) Qt is
the native API. Some other portable graphical toolkits have made
different design decisions; for example, wxWidgets uses the toolkits of
the target platform for its implementations.
Signals and slots a language construct introduced in Qt for
communication between objects which makes it easy to implement the
Observer pattern while avoiding boilerplate code. The concept is that
GUI widgets can send signals containing event information which can
be received by other controls using special functions known as slots.
Metaobject compiler The metaobject compiler, termed moc, is a tool
that is run on the sources of a Qt program. It interprets certain macros
from the C++ code as annotations, and uses them to generate added C++
code with Meta Information about the classes used in the program. This
Meta information is used by Qt to provide programming features not
available natively in C++: signals and slots, introspection and
asynchronous function calls
20
Releases
Qt 5
Qt 5 was officially released on 19 December 2012. This new version
marked a major change in the platform, with hardware-accelerated
graphics, QML and JavaScript playing a major role. The traditional C+
+-only QWidgets continued to be supported, but did not benefit from the
performance improvements available through the new architecture. Qt5
brings significant improvements to the speed and ease of developing
user interfaces.
Framework development of Qt 5 moved to open governance, taking
place at qt-project.org. It is now possible for developers outside Digia to
submit patches and have them reviewed
21
HARDWARE
&SOFTWAREREQUIREMENTS
4.4
SOFTWARE REQUIREMENTS:
QT Creator(3.4.1)open source
OS-WINDOWS XP/VISTA/7
HARDWARE REQUIREMENTS:
800MHz Intel Pentium III
1 GB of RAM
22
4.5
MODULE DESCRIPTION
23
When listening for connections, the address and port on which the server
is listening are available as serverAddress() and serverPort().
24
4.6
SCREEN SHOTS
+= core
QT
+= network
QT
-= gui
TARGET = MultiThreadedQTcpServer
CONFIG
+= console
CONFIG
-= app_bundle
TEMPLATE = app
SOURCES += main.cpp
25
26
Then, open up another cmd window, and send a connection request via
telnet:
27
The picture below shows the two responses from two different clients'
connection requests:
28
The software uses the Qt console application,in future it can be mad using
the GUI process.
Since,chatting is most common these days in sharing pictures,files,video
etc.In future this software can be used to transfer pictures,files,video etc.
29
REFERENCES
**********
30