Bonjour je suis en 2eme de BTS Iris.
Mon projet en partenariat avec l'ecole des mines et un lycée de BTS mécanique est de développer une application pour faire marcher un théodolite de suivie
http://sites.google.com/site/mecatro...010/theodolite
Nous sommes trois dans mon projet ma partie est de créer un client/serveur HTTP. en c ou c++ plus quelques autres petits modules.
J'ai deja fait un client/serveur TCP/IP mais pour faire le meme en HTTP je n'es trouver ni tutorial assez explicite ni source qui marche.
Je vous met ci dessous mon code pour mon client et mon serveur TCP/IP.
Je remercie les personnes qui pourront m'éclairer un peu!
CLIENT:___________________________________________________________________________________________________________________________
Serveur _________________________________________________________________________________________________________________________________
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 // Client.cpp*: définit le point d'entrée pour l'application console. // #include "stdafx.h" #include <iostream> #include <winsock2.h> #include <stdio.h> #pragma comment(lib, "ws2_32.lib") using namespace std; int main() { /*Initialisation de la socket*/ WSADATA WSAData; WSAStartup(MAKEWORD(2,0),&WSAData); /*création de la socket de connexion*/ SOCKET SocketConnect; SocketConnect = socket(AF_INET, SOCK_STREAM, 0); if(SocketConnect == -1) { cout<<"On ne peut ouvrir le socket. Erreur n°:"<<WSAGetLastError()<<endl; closesocket(SocketConnect); WSACleanup(); return-1; } /*etablissement de la connexion avec un serveur*/ sockaddr_in clientService; clientService.sin_family = AF_INET; clientService.sin_addr.s_addr = inet_addr("127.0.0.1"); clientService.sin_port = htons(80); int error; error = connect(SocketConnect,(SOCKADDR*)&clientService,sizeof(clientService)); if(error == -1) { cout<<"connection impossible Erreur n°:"<<WSAGetLastError()<<endl; closesocket(SocketConnect); WSACleanup(); return -1; } /*reception des données*/ int ByteRecv; char* buffer; buffer = new char[20]; ByteRecv = recv(SocketConnect, buffer, sizeof(buffer)+1,0); if(ByteRecv == 0) { cout<<"Reception echoue Erreur n°:"<<WSAGetLastError()<<endl; closesocket(SocketConnect); WSACleanup(); return -1; } buffer[sizeof(buffer)+1]='\0'; cout<<buffer<<endl; closesocket(SocketConnect); return 0;
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 // Serveur.cpp*: définit le point d'entrée pour l'application console. // #include "stdafx.h" #include <winsock2.h> #pragma comment (lib, "ws2_32.lib") #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { WSADATA WSAData; WSAStartup(MAKEWORD(2,0),&WSAData); //creation socket SOCKET SocketEcoute; SocketEcoute= socket(AF_INET,SOCK_STREAM,0); if(SocketEcoute==-1) { cout<<"Ouverture impossible. ERREUR n°"<<WSAGetLastError()<<endl; closesocket(SocketEcoute); WSACleanup(); return -1; }else{ cout<<"Creation socket OK"<<WSAGetLastError()<<endl; } //associer la socket à un port sockaddr_in Adresse; int LgAdresse=sizeof(Adresse); Adresse.sin_family = AF_INET; Adresse.sin_port = htons(80); Adresse.sin_addr.s_addr=htonl(INADDR_ANY); int error; error=bind(SocketEcoute,(struct sockaddr*)&Adresse, LgAdresse); if (error==-1) { cout<<"Echec. ERREUR n°"<<WSAGetLastError()<<endl; closesocket(SocketEcoute); WSACleanup(); return -1; }else{ cout<<"Ouverture reussie"<<WSAGetLastError()<<endl; } //Mettre la socket en mode passif error = listen(SocketEcoute,10); if (error==-1) { cout<<"L'ouverture a échouée. Erreur n°"<<WSAGetLastError()<<endl; closesocket(SocketEcoute); WSACleanup(); return -1; }else{ cout<<"Ouverture reussie"<<WSAGetLastError()<<endl; } //Accepter les connexions clientes SOCKET SocketService; SocketService = accept(SocketEcoute,NULL,NULL); if (SocketService ==-1) { cout<<"Connexion Echoué. ERREUR n°"<<WSAGetLastError()<<endl; closesocket(SocketEcoute); WSACleanup(); return -1; }else{ cout<<"Connexion reussie"<<WSAGetLastError()<<endl; } //Envoi du message int envoyer; envoyer = send(SocketService,"Coucou",6,0); if (envoyer==-1) { cout<<"Echec envoi. ERREUR n°"<<WSAGetLastError()<<endl; closesocket(SocketEcoute); WSACleanup(); return -1; }else{ cout<<"Message envoyé"<<WSAGetLastError()<<endl; } //fermeture de la connexion int SocketFermer; SocketFermer = closesocket(SocketEcoute); return 0; }
Partager