Historique des modifications - Message

Message #673

Sujet: [RESEAU] mk_socket


Type Date Auteur Contenu
Création du message 03-12-2006 11:52:08 smeagol
Bon voici une librairie très utile et très simple d'utilisation pour des socket TCP multi-thread voici un petit exemple

Pour l'utiliser vous avez besien de mk_socket.a et mk_socket.h pour faire une version VS il faut la recompiler.

voici un exemple de server:

#include <iostream>
#include "mk_socket.h"

//Cette fonction est appelée par le socket lorsque qu'un autre socket se connecte au serveur.

void on_connection_request(mk_socket& sck,void* data)
;
    // mk_socket est une réference vers le socket en utilisation
    // data est un pointeur vers une donnée envoyer pour l'utiliser n'oublier pas de le caster

//Cette fonction est appelé lorsque des données arrive du réseau. La fonction ne fait qu'imprimer ce texte à l'écran.

void on_data_arrival(mk_socket& sck, char* str, int size, void* data);
    // mk_socket est une réference vers le socket en utilisation
    // str est la chaine de caractère ressu
    // size est la taille de str
    // data est un pointeur vers une donnée envoyer pour l'utiliser n'oublier pas de le caster
    
int main()
{
    mk_socket sock //création du mk socket
    
    // Affecte les fonction callback de connection et de reception de donnée
    // Le NULL peux être remplacé par une adresse mémoire ressue par l'attribut 'data'(voir plus haut)
    sock.SetConnectionRequestCallBack(on_connection_request, NULL);
 
    sock.SetDataArrivalCallBack(on_data_arrival, NULL);
    
    int port;
    std::cout << "port ?" << std::endl;
    std::cin >> port;
    
    //Écoute sur le port
    sock.Listen(port);
    
    //On attend que la connection se ferme et que le socket n'écoute plus.
    sock..WaitClose();
    
    return EXIT_SUCCESS;

};

void on_connection_request(mk_socket& sck,void* data)
{
    //On accepte la connexion, et on utilise pour celà le socket qui écoutait précédemment. De toute manière, on n'attend plus d'autre connexions.
    //Attention garder le si vous vouler écouter encore sur votre port
     sck.Accept(sck);    

    while(1)  //n'arrête pas deboucler
    {
        char texte [100];
        std::cin >> texte;
        sck.Send(texte);
    }
};

void on_data_arrival(mk_socket& sck, char* str, int size, void* data)
{
    std::cout << str << endl;    //Écrit le texte reçu
    return;
};

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
166 invités en ligne
membre en ligne: -
RSS Feed