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
| /* serveur.c */
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/in.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int s; /* descripteur de socket serveur */
int c; /* descripteur de socket accepte */
struct sockaddr_in serveur;
struct sockaddr_in client;
unsigned int longeur;
char entree[1024];
/* Creation dun socket serveur */
s = socket(AF_INET, SOCK_STREAM, 0);
/* Association dune adresse sur le port 7777 */
memset(&serveur, 0, sizeof(serveur));
serveur.sin_family = AF_INET;
serveur.sin_port = ntohs(7777);
serveur.sin_addr.s_addr = ntohl(INADDR_LOOPBACK);
bind(s, (struct sockaddr *) &serveur, sizeof(serveur));
/* Mise du serveur a lecoute */
listen(s, 20);
/* Accepte une ligne de texte
* lignore
* puis envoie une page Web */
while(1)
{
/* Attend une connexion */
longeur = sizeof(client);
c = accept(s, (struct sockaddr *) &client, &longeur);
// Récupere le contenu de la requête client et l'ignore
recv(c, entree, sizeof(entree), 0);
// debug pour voir le contenu
printf("%s", entree);
// Page à envoyer
char request[] = "<HTML>\n<BODY>\n<H1>Bonjour</H1>\n</BODY>\n</HTML>\n";
// Envoie une page HTML
send(c, request, sizeof(request), 0);
}
return 0;
} |
Partager