Chat client/serveur en api utilisant winsock

Description

Voila, débutant avec Winsock, je m'etais posé comme défis de réaliser un petit chat ou plusieurs clients pouvez se connecter à un même serveur et dialoguer entre eux. Il reste cependant quelques bugs ( mineurs ? ) qui reste à corriger, ce que je tenterai de faire par la suite ( pas bcp de temps pour le moment ).

Voila, j'attends vos ritiques ce qui permettra ( peut-être ) de pouvoir progresser :)

Source / Exemple :


/*********************************************/
/*                                  Serveur                                        */
/*********************************************/

#include <stdio.h>
#include <conio.h>
#include <winsock.h>
#pragma comment(lib,"WSOCK32.LIB")

#include "main.h"

char buf[1024];

int main()
{
	int Res;

	wVersionRequested=MAKEWORD(1,1);
	Res = WSAStartup(wVersionRequested,&wsaData);

	if(Res!=0)
	{
		return DisplayErreur("WSA ne veut pas s'initialiser.", 1);
	}

	Sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

	ZeroMemory(&Addr,sizeof(Addr));
	Addr.sin_family = AF_INET;
	Addr.sin_addr.S_un.S_addr = INADDR_ANY;
	Addr.sin_port = htons(1014);

	Res = bind(Sock, (struct sockaddr*)&Addr, sizeof(Addr));

	if(Res!=0)
	{
		return DisplayErreur("Les sockets deconnent.", 1);
	}

	Res = listen(Sock, 16);

	if(Res!=0)
	{
		return DisplayErreur("Impossible de proceder a l'ecoute.", 1);
	}

	printf("Le serveur est lance.\nAttente de connexion de la part des clients.\n");

	New_Sock = new SOCKET;

	while(bContinue)
	{
		Cnx++;
		New_Sock[Cnx] = accept(Sock, (struct sockaddr*) NULL, (int *) NULL);				
		printf("Client connecte. ( %d total )\n", Cnx);

		hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Echo, (LPVOID)New_Sock[Cnx], 0, &dwThread);
	}

	CloseHandle(hThread);

	return 0;
}

Conclusion :


Voila, je tiens à remercier tous ceux qui déposent les sources car ca m'a permis de pas mal comprendre de choses depuis que je code :)

Codes Sources

A voir également

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.