Skip to content
Snippets Groups Projects
Commit b432421e authored by Romain Gabet's avatar Romain Gabet :speech_balloon:
Browse files

erreur a corriger

parent c6daf878
Branches
Tags
No related merge requests found
No preview for this file type
File added
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include "socket.h"
#include <netinet/in.h>
/*int main(int argc, char **argv)
{
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!\n");
return 42;
int main(int argc, char **argv) {
/* Arnold Robbins in the LJ of February '95, describing RCS */
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!\n");
return 42;
}
printf("Need an advice?\n");
creer_serveur(8000);
return 0;
}
printf("Need an advice?\n");
return 0;
}*/
int main(){
int socket_serveur = creer_serveur(8080);
int socket_client;
socket_client = accept(socket_serveur, NULL, NULL);
if (socket_client == -1) {
perror("accept");
/* traitement d'erreur */
}
/* On peut maintenant dialoguer avec le client */
const char *message_bienvenue = "Game of Thrones [geɪm əv θɹoʊnz],\n également appelée Le Trône de ferb selon le titre français de l'œuvre romanesque \n dont elle est adaptée, est une série télévisée américaine de Fantasy1 créée par David Benioff et D. B. Weiss,\n diffusée entre le 17 avril 2011 et le 19 mai 2019 sur HBO aux États-Unis en simultané sur HBO Canada au Canada.\n\nIl s'agit de l'adaptation de la série de romans écrits par George R. R. Martin depuis 1996,\n saga réputée pour son réalisme et par ses nombreuses inspirations tirées d’événements, lieux et personnages historiques réels,\n tels que la guerre des Deux-Roses, le mur d'Hadrien ou Henri VII Tudor2.";
write(socket_client, message_bienvenue, strlen(message_bienvenue));
}
#include <stdio.h>
#include <string.h>
int main() {
+#include <string.h>
}
int main(){
int socket_serveur = creer_serveur(8080);
int socket_client;
socket_client = accept(socket_serveur, NULL, NULL);
if (socket_client == -1) {
perror("accept");
/* traitement d'erreur */
}
/* On peut maintenant dialoguer avec le client */
const char *message_bienvenue = "coucou";
write(socket_client, message_bienvenue, strlen(message_bienvenue));
}
#include <stdio.h>
#include <string.h>
#include "socket.h"
/*int main(int argc, char **argv)
{
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!\n");
return 42;
}
printf("Need an advice?\n");
return 0;
}*/
int main(){
int socket_serveur = creer_serveur(8080);
int socket_client;
socket_client = accept(socket_serveur, NULL, NULL);
if (socket_client == -1) {
perror("accept");
/* traitement d'erreur */
}
/* On peut maintenant dialoguer avec le client */
const char *message_bienvenue = "coucou";
write(socket_client, message_bienvenue, strlen(message_bienvenue));
}
No preview for this file type
No preview for this file type
......@@ -3,6 +3,7 @@
#include <stdio.h>
#include "socket.h"
#include <netinet/in.h>
int creer_serveur(int port){
//socket
int socket_serveur;
......@@ -26,5 +27,21 @@ int creer_serveur(int port){
perror("listen socket_serveur");
/* traitement d'erreur */
}
return socket_serveur;
int socket_client;
socket_client = accept(socket_serveur, NULL, NULL);
if (socket_client == -1) {
perror("accept");
/* traitement d'erreur */
}
/* On peut maintenant dialoguer avec le client */
const char *message_bienvenue = "Bonjour, bienvenue sur mon serveur\n";
write(socket_client, message_bienvenue, strlen(message_bienvenue));
int optval=1;
if (setsockopt(socket_client, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)) == -1) {
perror("Can not set SO_REUSEADDR option");
return -1;
}
return 0;
}
int creer_serveur(int port){
//socket
int socket_serveur;
socket_serveur = socket(AF_INET, SOCK_STREAM, 0);
if (socket_serveur == -1) {
/* traitement de l'erreur */
perror("socket_serveur");
}
/* Utilisation de la socket serveur */
//bind
struct sockaddr_in saddr;
saddr.sin_family = AF_INET; /* Socket ipv4 */
saddr.sin_port = htons(8080); /* Port d'écoute */
saddr.sin_addr.s_addr = INADDR_ANY; /* écoute sur toutes les interfaces */
if (bind(socket_serveur, (struct sockaddr *)&saddr, sizeof(saddr)) == -1){
perror("bind socker_serveur");
/* traitement de l'erreur */
}
//listen
if (listen(socket_serveur, 10) == -1) {
perror("listen socket_serveur");
/* traitement d'erreur */
}
}
int main(){
if (listen(socket_serveur, 10) == -1)
{
perror("listen socket_serveur");
/* traitement d'erreur */
}
}
#ifndef __SOCKET_H__
#define __SOCKET_H__
/** Crée une socket serveur qui écoute sur toute les interfaces IPv4
de la machine sur le port passé en paramètre. La socket retournée
doit pouvoir être utilisée directement par un appel à accept.
La fonction retourne -1 en cas d'erreur ou le descripteur de la
socket créée. */
int creer_serveur(int port);
#endif
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment