Client Application And The Server Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

In this assignment I will describe what my application is, describe its structure and implement it and appraise the results. The application I have created is an online game ("Guess the number"), which allows to connect a lot of players to the game server. The project consists of server, administrative client and client applications. Firstly, I will describe the application itself, I will explain in detail how it works, what it does and what the game is about. Secondly, I will describe the application's architecture, this includes the description of how the game been divided into server, client admin and client. Finally, I will describe how these application communicate with each other. I will mention security issues . In this report I will also speak about any difficulties I have faced throughout this module, I will include the things I have learnt from this module and I will also add an advice for students who would want to take this module in future. At the end of this report I will talk about what I have done for the bonus material.


Our application is a game of guess the number of client-server, which will carry the game multiple clients to the server at a time. The game is the fact that the server is set for each player a random number from 1 to 20, and the task of connected players (customers) is to guess the number. Players should respond by entering the numbers on their computers. The server verifies the guess of the player then tells whether the guess is close, way off or correct. When a player correctly guesses the number of searched the game ends.

Server waits for a client and then starts the game Informing all players. If the user disconnects during the game, the game ends. Always mean the end of the game the player disconnects and waiting for a new connection. During recruitment the server assigns the customers, such as IP address, port.


Client-server is a model that allows for diffusion applications, data and services on different computers connected to the network. To achieve it, the network must be the requesting process (customers), and processes that support them (servers). Client and server processes can run on different computers. Essential for understanding the idea of ​​constructing systems client / server is the possibility of separating the functions that perform specific services for customers.

Guess the number game is divided into server (which has all the logic of the game, and processes the data received from client), the client, the administrative client.

The connection between client and server is described by means of communication protocols. The client application must have a specific IP address and port to connect with the server. The client side is the party requesting access to a service or resource in our case to the game server, it is also the active site sending queries to a server that is in a passive state waiting for requests from clients. For example, our application looks like, so that the game server is waiting for combination between the client application. When the connection is established game server generates a random number and sends it to the client query "What is your guess?", Then the client responds, the client sends to the server, the server at the time of receipt of the request processing it (tested with the number generated earlier by the server) . Depending on the answers provided by the user, the server may be that the number was too high, too low, or correct in this case the game ends. Administrative client connects to the server only in order to check the list of current players.

The communication between our server and the standard clients will respond to a standard socket, which represents the lowest level of access to the stack TCP / IP. In other words, the two processes can communicate with each other over the network, one opens the socket, the other also, and then through a socket send data in blocks of a few kilobytes, called packets (IP). Since migrating through the network packets must reach the proper host on the network, one of the parameters is the socket IP address. When the packet reaches the destination host has yet to reach a specific process, because each host, such processes can be running a lot. Thus, the second parameter is the socket port number that identifies a specific process.

For the communication between server and the admin client corresponds a TLS (Transport Layer Security) socket. Admin client first connects to a server with a TLS socket, after the response from server, the server sends its certificate. Further, the server requires a certificate and a public key from a client, which is verified by TLS whether client's certificate confirmed by CA ( certification authority ) if it is been confirmed, then the client has a access to the server and this point the admin client can see the list of the current players. All messages sent between admin client and server through the TSL socket are encrypted.

Separation of the client application and the server have the following advantages:

- Allows the user access to information, no matter where its location in the network

- Scalability, adding new workstations (usually PC), which performs the client program should not affect the operation of the system (including speed of service should not be subject to change).

Similarly, increased computing power, or even replace the computer on which the server or server scattering on several computers, you should not have any impact on system performance.

- Co-operation over the network. The ideal client / server system operates independently of the technology used to connect computers in the network protocol used or the operating system.

- Server admin can set up the level of access to data stored on the server for users, some can read the data and some can change the data, which helps secure the data.

Unfortunately, in the client-server model, there are also disadvantages and they are: - Connecting a large number of users can slow down bandwidth, which will result in delays in getting packages to the recipient, and may be complete loss of access to the server

- In order to have access to data, the server must be running at all times, and when the server is not running the access to data is entirely impossible.

- To start the server from which the unit can handle a large number of customers requires specific systems and hardware which are not affordable for ordinary users.


In this part of this report I will explain the use of network of my application. I will also talk about what effects the service of an online game.

This application is an online game which means it is global-wide ( everyone around the world can access it). For application to work the server is required to be running all the time for the clients and admin clients to collect.

This application is network based which requires an internet connection to work. It can be accessed from anywhere round the world by using internet. As this application is not stored on the clients workstation, but in a server which is located on a different workstation everyone can access to it by the internet. Client can access the server using a correct IP address and a port number.

Admin client has the overall control of a server. Admin client has the access to the server form anywhere in the world using an internet connection. This makes it easier for the admin as the server can be accessed from any workstation with an internet connection and they don't have to rely on only one machine to perform tasks or sent requests.

Admin client is only requested to enter their IP address and the port number. When the connection with server is established, the admin client can perform any tasks and send commands.

At this time, the application can cope with a number of players at a time. As the game grows and the number of the clients increases the Quality-of-Service (QoS) is effected and the quality of the service becomes poorer. The server requires larger bandwidth to handle bigger number of clients in a stable mode. When the number of clients increases and the quality of service becomes poorer the server can be delayed or the client will even lose the connection with the server, which means that the client would have to wait until the connection with the server is successfully established again.


From this module I learned first of all that you always have to learn something, and there is never too little knowledge. The threats in the virtual world really exist, only know the ways in which they are implemented, and knowing how to avoid them give full satisfaction to safely surf the web. It is therefore necessary to participate in such a course. It changes the outlook very much. If you do not know what threatens you, you really don't know anything. And if you do not want to know, it is worse for you.

The most important practical thing while making this application and the whole module about the network and security was how to make an application client-server because I have learnt how the network game plays. Another important thing that I have learnt while building this application was how is established communication between client and server applications and finally I have also learnt how the online games work all together, that includes how players and admin client connect to the server and how TLS security work.

The most difficult part about this module was making the application fully working as I had lots of problems with it but my tutor helped me how to fix it and add additional elements to make my game more entertaining.

My advice for students taking this module in future is to be patient as not everything works quite simply and smoothly as some might think.


For bonus material I have added more languages to my online game. This languages are: English, French, Spanish and Italian. At the start of the game the player is requested to choose their language by choosing an option form one to four. I have done this to make the game easier for the players as they can choose their language, which is making sure that the players fully understand the game

I have also added instructions on how to play a game. This is shown after the player chooses his language so the instructions are displayed in their chosen language.