building message server and distribution agreement

building board message and distribution Agreement in C/C++

This project consists of two phases.

In the first phase, you will construct a simple network server.

The next phase will consist of convincing multiple such servers to work together. Read the document completely before starting any coding; everything in the document is part of the specification and it is your

responsibility to ensure that you have implemented the whole server as specified.


The challenge is set up so that it gives you the opportunity to showcase your skills in system programming in a POSIX1

environment. Indeed, you must implement the server as a UNIX service (“daemon”) and

you further must use the POSIX API provided by the UNIX standard C library. Therefore your server must

be written in C or C++.

Throughout the handout, we will refer to the following configuration parameters. How these parameters

are obtained will be described in Section 3.1.

• bp is the port number for client-server communication (positive integer), see Section 1;

• sp is the port number for inter-server communication (positive integer), see Section 2;

• bbfile is the name of the bulletin board file that will be manipulated throughout this project (string),

see Section 1;

• Tmax is the number of preallocated threads (positive integer), see Section 1.4;

• peers the list of peers participating in synchronization (possibly empty list of pairs hostname–port

number), see Section 2;

• d is a Boolean flag controlling the startup of the server, see Section 1.5;

• D is a Boolean flag controlling debugging facilities, see Sections 1.3 (last paragraph) and 3.2.

Part 1

Your first task is to construct a simple bulletin board server. The server accepts one-line messages from multiple clients, stores them in a local file, and serves them back on request. The name of the file is given by the parameter bb file. Messages are identified upon storage by a unique number established by the server, and by the “sender ” of the message (as provided by the USER command explained below).

The clients connect to our server on port bp. We also assume a production environment so that we implement concurrency control.

Part 2

We are now ready to implement a replicated database management system. Since we have it already we will use the bulletin board file as our database. This file is now kept replicated (and synchronized) on multiple servers.

Each server receives a list of the other servers that are participating in the synchronization. This is the list of peers as specified in the configuration file and/or on the command line. Each element in the list consists of a hostname and a port number.

In addition, each server listens on port sp for incoming requests for synchronization.

Habilidades: Programação C++ , Programação C, Server, Linux

Sobre o Cliente:
( 0 comentários ) Sherbrooke, Canada

ID do Projeto: #33994479

8 freelancers estão ofertando em média $419 nesse trabalho


Hello Sir/ Ma’am We are a group of Software Engineers (Programmers) having 10+ years of experience. Expert in JAVA, C, C++ , C# , Python, MATLAB. Done 700+ projects here on FREELANCER.COM. Please check our profile Mais

$250 CAD in 2 dias
(336 Comentários)
(2 Comentários)

⭐⭐⭐⭐⭐⭐ C/C++/C#/.NET Expert ⭐⭐⭐⭐⭐⭐ Dear client. I have fully read your requirements and so motivated to work on your project as a senior developer. My major is C/C++/C#/.NET development and I have full experience over Mais

$300 CAD in 7 dias
(12 Comentários)

Hi.⭐⭐⭐⭐⭐ I have read your post about looking for C expert and have rich experience with Desktop Application. I am very happy to meet this job since I am familiar with C/C++. Please see my review, you can know i am a s Mais

$500 CAD in 7 dias
(13 Comentários)
(25 Comentários)

Hi, I am a very talented software programmer with 13+ years of development experience (5+ years professional work experience). I am a results-oriented professional and possess experience using cutting-edge development Mais

$500 CAD in 5 dias
(5 Comentários)

Hello, Client! I read your project description carefully. I am Honest and High skilled developer I am not Agency like someone. I'm a C/C++/python and math expert. And I have a lot of experiences with server developing Mais

$300 CAD in 5 dias
(3 Comentários)

Hi, I can do that educational project for you, in C or C++ on Ubuntu WSL(W10) Please contact me for details on chat/messenger Thanks

$750 CAD in 30 dias
(0 Comentários)