Salut a tous,
Savez vous comment compiler ce code avec mingw c'est a dire gcc sous windows ?!!
Je mets au défi que quelqu'un y arrive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
#ifdef WIN32
#include <winsock.h>
#else
#include <netinet/in.h>
#define	closesocket close
#endif
 
#include <stdio.h>
#include <stdlib.h>
 
/* Sous windows, a compiler avec ws2_32.lib */
 
#define	TAILLE		10
#define	TAILLE_MD5	16
 
int main(int argc , char ** argv)
{
	int					clientSocket;
	struct sockaddr_in	adresse_serveur;
	char				taille[TAILLE+1];
	int					l_taille, l, result;
	unsigned char		MD5_result[TAILLE_MD5];
 
	/* Pas de bol, il faut initialiser ws2_32.dll */
	#ifdef _WIN32
		WORD wVersionRequested=MAKEWORD(2,0);
		WSADATA wsaData;
 
		if (WSAStartup(wVersionRequested,&wsaData)) return(-1);
		if ((LOBYTE(wsaData.wVersion)!=2)||(HIBYTE(wsaData.wVersion)!=0))
		{
			WSACleanup();
			return(EXIT_FAILURE);
		}
	#endif
 
	if ( argc != 4 )
	{
		printf("Usage MD5Serv IP_Serveur port \"Chaine dont on veut le MD5\"\n");
		exit(EXIT_FAILURE);
	}
 
	l = strlen(argv[3]);
	l_taille = sprintf(taille, "%u", l);
	*(taille+l_taille) = '\0';
 
	adresse_serveur.sin_family = AF_INET;
	adresse_serveur.sin_addr.s_addr = inet_addr(argv[1]);
	adresse_serveur.sin_port = (unsigned short int)htons((unsigned short int)(atoi(argv[2])));
 
	clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
 
	if ( clientSocket < 0 )
		exit(EXIT_FAILURE);
 
 
	if ( result = connect(clientSocket,(struct sockaddr*)&adresse_serveur,sizeof(adresse_serveur)) == 0 )
	{
		result = send(clientSocket,(char *)(taille), TAILLE,0);
		if ( result == TAILLE )
		{
			result = send(clientSocket,(char *)(argv[3]), l,0);
			if ( result == l )
			{
				result = recv(clientSocket,(char *)(MD5_result), TAILLE_MD5,0);
				if ( result == TAILLE_MD5 )
				{
					for (l = 0; l < TAILLE_MD5; printf ("%02x", MD5_result[l++]));
					printf("\n");
				}
			}
		}
	}
 
	closesocket(clientSocket);
 
	exit(EXIT_SUCCESS);
}