#include #include #include #define BUFFER_SIZE 500 #define NAME_SIZE 1000 int sendstring(int c) { char buffer[BUFFER_SIZE], name[NAME_SIZE]; int sendrecv; strcpy(buffer, "login: "; sendrecv = send(c, buffer, strlen(buffer), 0); /* normalement on test si les envoies et les réceptions ont été correctement effectués */ sendrecv = recv(c, name, sizeof(name), 0); name[sendrecv - 1] = '\0'; sprintf(buffer, "\nHello %s ! Welcome to my server !\r\n", name); /* OMFG */ send(c, buffer, strlen(buffer), 0); return 0; } int main(int argc, char *argv[]) { int s, c, cli_size; struct sockaddr_in yeah, cli; /* normalement dans un vrai server on fait des tests si les fonctions ont réussis ou non */ s = socket(AF_INET, SOCK_STREAM, 0); yeah.sin_addr.s_addr = INADDR_ANY; yeah.sin_port = htons(4000); yeah.sin_family = AF_INET; bind(s, &yeah, sizeof(yeah)); listen(s, 3); while(1) { c = accept(s, &cli, &cli_size); sendstring(c); close(c); } return 0; }