- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/Network/Server.hpp

Go to the documentation of this file.

    00001 #ifndef NETWORK_SERVER_HPP
    00002 #define NETWORK_SERVER_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 #ifdef TARGET_SYSTEM_PSP
    00008     #define SOCKET int
    00009 #elif defined TARGET_SYSTEM_WIN32
    00010     #include <winsock.h>
    00011 #endif
    00012
    00013 // C++
    00014 #include <string>
    00015
    00016 // Personnelles
    00017 #include "Network/Network.hpp"
    00018
    00019 #ifdef TARGET_SYSTEM_PSP
    00020     #define NETWORK_SERVER_MAX_CLIENTS 8
    00021 #elif defined TARGET_SYSTEM_WIN32
    00022     #define NETWORK_SERVER_MAX_CLIENTS 32
    00023 #endif
    00024
    00025
    00026 namespace USpeedGameEngine
    00027 {
    00028
    00029 class Network;
    00030
    00031 class Network::Server
    00032 {
    00033     /* **************
    00034     * Les attributs *
    00035     * **************/
    00036     public :
    00037     protected :
    00038     private :
    00039         SOCKET serverSocket;
    00040         SOCKET clientSockets[NETWORK_SERVER_MAX_CLIENTS];
    00041
    00042     /* *************
    00043     * Les méthodes *
    00044     * *************/
    00045     public :
    00046         // Constructeur par défaut
    00047         Server();
    00048         // Destructeur par défaut
    00049         ~Server();
    00050         // Initialisation du serveur sur le port spécifié et lance le serveur qui écoute les éventuelles clients pour la connexion
    00051         bool start(unsigned int port);
    00052         // Arrête d'écouter les clients et coupe les connexions avec les clients déjà connectés
    00053         void stop();
    00054         // Le traitement régulier du serveur en cours d'exécution
    00055         unsigned int process(std::string *targetBuffer);
    00056         // Envoie de données du serveur à un client
    00057         bool sendTo(std::string const &datas, unsigned int clientId);
    00058         // Suppression d'un client de la liste des clients
    00059         void dropClient(unsigned int clientId);
    00060
    00061         // Retourne le nombre maximum de clients possibles
    00062         unsigned int getMaxClients();
    00063         // Permet de savoir si le socket du client spécifié est valide
    00064         bool getClientState(unsigned int clientId);
    00065
    00066         // Permet de savoir si le socket du serveur est valide et en écoute
    00067         bool isRunning();
    00068
    00069     protected :
    00070     private :
    00071 };
    00072
    00073 }        // Fin "namespace USpeedGameEngine"
    00074
    00075 #endif