How kirimusha/client_server_app_polytech works
This is a client–server application for finding shortest paths in an unweighted graph, with TCP and UDP modes. The main workflow takes graph edges and endpoint names from the client, converts names to numeric vertices, sends a request, and returns a path or error from the server. The client also supports graph-file input; UDP adds acknowledged, retried packet delivery. The graph follows documented behavior and sampled source; some server request-handling details are omitted, so uncertain internal links are not shown.
Main entry points: Server.cpp Request handling · ClientMain.cpp Client entry · Client.cpp Client requests · Protocol.cpp Request encoding
Components 14
Client input and requests
- Client entry
client/ClientMain.cpp - Client requests
client/Client.cpp
Network protocols
- UDP packets
common/UDPProtocol.h - TCP / UDP network
Server and graph search
- Server entry
server/ServerMain.cpp - Request handling
server/Server.cpp - Graph model
common/Graph.cpp - Shortest-path search
common/Dijkstra.h
Shared utilities
- Input parsing
utils/InputParser.cpp - File input
utils/FileReader.cpp - Input validation
utils/Validator.cpp - Request encoding
common/Protocol.cpp - Logging
utils/Logger.cpp
Other components
- User
Connections 18
- User → Client entry: provides input
- Client entry → Input parsing: parses input
- Client entry → File input: reads graph file
- Client entry → Input validation: validates input
- Client entry → Client requests: submits request
- Client requests → Request encoding: encodes request
- Client requests → UDP packets: frames UDP
- Client requests → TCP / UDP network: sends request
- TCP / UDP network → Request handling: delivers request
- Server entry → Request handling: starts server
- Request handling → Request encoding: decodes request
- Request handling → UDP packets: handles UDP packets
- Request handling → Graph model: builds graph
- Request handling → Shortest-path search: searches path
- Request handling → Request encoding: encodes response
- Request handling → TCP / UDP network: sends response
- Client requests → Logging: logs events
- Request handling → Logging: logs events