Final Project X-Messenger servers
Final project X-Messenger servers
X-Messenger is an instant messaging tool launched by xuanyuan high-end it training center. It supports text chat, file transmission, friend management, and other instant messaging functions. As one of the final projects of the Linux C ++ series courses, the objective is to train students in C ++ basics, C ++ standard libraries, boost class libraries, or ace (either of them) master the degree of database development, and fully understand the Design and Implementation routines of High-throughput and Low-latency high-performance server applications, as well as the formulation and implementation of application layer communication protocols through the implementation of this project.
Functions implemented on the server:
- Instant Message: supports instant messages and offline messages (in which instant messages are implemented in P2P mode );
- File Transfer: Implemented in P2P mode;
- Friend management: add, delete, and modify friends. add, delete, and modify friend groups;
- User status management: notifications of online and offline user status changes.
Server Architecture:
The X-Messenger Server group consists of multiple groups of servers with different functions. Each group of servers undertakes their respective tasks. The following figure shows the network topology and server architecture of the X-Messenger Server:
X-Messenger Server network topology
Router Server Architecture
Technologies involved in this project:
- C ++: Implemented in the C ++ language, fully integrating the object-oriented and generic programming modes;
- Boost: boost. ASIO, boost. Thread, boost. smartptr, boost. function, boost. Bind, boost. stringalgo, boost. unordered, boost. propertytree, boost. format, and other class libraries;
- ACE: reactor, acceptor-connector, task, and other frameworks;
- OTL: Access MySQL or Oracle databases;
- Database: Oracle or MySQL;
- Linux Shell script: server startup and daemon scripts;
- Application layer communication protocol: Custom xmmep (X-Messenger message exchanging protocol) protocol.
Project deployment:
- Operating System: Linux 2.6.x;
- Database: MySQL 5.1 +/Oracle 10 GB (either ).