C++ Serveur web

Signaler
Messages postés
313
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
10 août 2013
-
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
-
Bonjour J'ai commencé a faire un serveur Pour affiché du texte sur le client Voici le code

#include <winsock2.h>
#include <windows.h>
#include <cstdlib>
#include
c

int main()
{
  
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr            = INADDR_ANY;
sin.sin_family        = AF_INET;
sin.sin_port                = htons(4662);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);

while(1)
{

int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
printf("Nouveau client connecter\n");
char text[200]="Bienvenue sur le serveur de =====>kiki67100<===== \n "; //J'aimerais que ses texte sois lisible sous les NAV ,FireFox,IE ect..
send(csock, text, sizeof(text), 0);
closesocket(csock);
(csock,"100");
}
}
}

Sous firefox sa me donne un Fichié a telechargé en .BIN Sous IE 6.0 sa me donne le texte Sous IE.7.0 sa maffiche rien
J'espere que vous pouriez maider
Merci

Kevin

3 réponses

Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Un serveur web attend que le client envoie une requête HTTP pour identifier la ressource à envoyer, ensuite il envoie son header HTTP en précisant au moins le content-type et le content-length, envoie une ligne vide pour marquer la fin du header. Puis il envoie le contenu du fichier. Voir RFC 2616.


len= sprintf(paquet, "HTTP/1.1 200 OK\n"
"Content-Length:30\n"
"Content-type:text/html\r\n"
"\r\n"
"Fin de la connection.
");
n = send(sock, paquet, len, 0);
if (n != len) erreur;

Le serveur doit aussi gérer plusierus connections simultanées, il faut
donc dès à présent choisir un modèle d'I/O pour le serveur: threads,
multiplexage d'entrée/sorties synchrone, sockets non bloquants etc...
Messages postés
313
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
10 août 2013
1
Merci
sa marche en local mais quand je donne le liens a quelqun :s sa marche pas
A affiche La page na pas pus s'affiché mais sinon en local sa marche impec merci

Kevin
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
Les navigateurs HTTP se connectent par défaut par le port 80: s'assurer qu'il est ouvert sur le routeur/firewall et corriger le code qui écoute sur le 4662. Toujours vérifier les codes de retour des fonctions bind() et listen(). Ton serveur va rapidement gagner quelques centaines de lignes de code.

I can break the rules too, goodbye.