Bubsock.h: les socket deviennent simples

Description

Et bien j'ai voulu me lancer dans les socket, mais j'ai trouvé ça assez chiant et compliqué alors j'ai fais un header poiur simplifier tout ça.

Sivre les exemples pour comprendre l'utilisation, il gère très bien l'utilisation simultané de plusieur socket qu'ils soit serveur ou client.

Ne pas oublier de mettre les #define des fonctions que vous utilisez avant d'inclure le fichier 'bubsock.h'.

Source / Exemple :


//////////////////////////////////////////////////////////////
// Code simple d'un client telnet
//////////////////////////////////////////////////////////////

#include <stdio.h>

#define USE_SOCKCLOSE
#define USE_SOCKREAD
#include "..\bubsock.h"

SOCKET Client;

void SOCKREAD(SOCKET _Client,char* chaine)
{
	printf("Serveur: %s",chaine);
}

void SOCKCLOSE(SOCKET _Client)
{
	printf("Le serveur a ete deconnecte\n");
	exit(0);
}

int main()
{
	if (sockopen(&Client,"127.0.0.1",23) != 0)
	{
		printf("Connexion impossible\n");
		exit(0);
	}
    printf("Vous etes connecte\n");
    while(1) 
	{
		char chaine[0xFF];
		int c = 0;
		do
		{

			chaine[c++] = getc(stdin);
			chaine[c] = '\0';
			if (!strcmp(chaine,"exit"))
			{
				sockclose(Client);
				exit(0);
			}

		} while (chaine[c-1] != '\n');
		sockwrite(Client,chaine);
    }
    return 0;

////////////////////////////////////////////////////////////////////////////
// Code simple d'un serveur telnet
////////////////////////////////////////////////////////////////////////////

#include <stdio.h>

#define USE_SOCKLISTEN
#define USE_SOCKCLOSE
#define USE_SOCKREAD
#include "..\bubsock.h"

SOCKET Client = INVALID_SOCKET;
SOCKET Serv;

void SOCKLISTEN(SOCKET _Client)
{
	if (Client == INVALID_SOCKET)
	{
		printf("Un client est arrivé\n");
		Client = _Client;
	}
	else sockclose(_Client);
}

void SOCKREAD(SOCKET _Client,char* chaine)
{
	printf("Client: %s",chaine);
}

void SOCKCLOSE(SOCKET _Client)
{
	if (_Client == Client)
	{
		printf("Le client s'est deconnecte\n");
		exit(0);
	}
}

int main(int argc, char* argv[])
{
	if (socklisten(&Serv,23) != 0)
	{
		printf("Connexion impossible du serveur.\n");
		exit(0);
	}

    printf("Serveur pret\n");
    while(1) 
	{
		char chaine[0xFF];
		int c = 0;
		do
		{
			chaine[c++] = getc(stdin);
			chaine[c] = '\0';
			if (!strcmp(chaine,"exit"))
			{
				if (Client != INVALID_SOCKET) sockclose(Client);
				exit(0);
			}

		} while (chaine[c-1] != '\n');
		if (Client != INVALID_SOCKET) sockwrite(Client,chaine);
    }
    return 0;
}

Conclusion :


Donnez moi critique, remarques et impressions ainsi que des idées pour l'améliorer.

Merci

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.