begin process at 2012 02 08 10:09:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CANEVAS SERVEUR UNIX ( LINUX) V1.0

CANEVAS SERVEUR UNIX ( LINUX) V1.0


 Information sur la source

Note :
Aucune note
Catégorie :Réseaux & Internet Niveau :Initié Date de création :12/11/2002 Date de mise à jour :12/11/2002 21:06:34 Vu :5 935

Auteur : NiChaN

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Ce canevas serveur permet de cree un serveur sous unix
il faut bien sur lui ajouter les fonctions que vous souhaiter -- exemple serveur echo,chat,donnees .....

Source

  • // Ecrits par NiChaN --- ***The EaTo By NiChaN***
  • // www.EaTo.fr.st
  • // 22/06/2002
  • // Petit canevas de serveur unix
  • // ici il fonctionne en temps que serveur d'echo
  • // mais peut tous a fait etre utilise pour une application plus grande
  • // comme un serveur de discution : CHAT
  • // ou bien un serveur de stockage de donnée !
  • // Utilisation mode console :
  • // Cree des fonctions avec renvoye de valeur si vous desirer l'utiliser en mode graphique !
  • #include <errno.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <linux/in.h>
  • #include <netdb.h>
  • #include <sys/stat.h>
  • #include <fcntl.h>
  • #include <signal.h>
  • #include <stdio.h>
  • int main (int argc ,char* argv[])
  • {
  • long int retour;
  • FILE* pfile;
  • struct sockaddr_in sin, from;
  • struct servent *sp;
  • struct hostent *hp;
  • int s;
  • char buffer[100];
  • char *taille;
  • char *pfichier;
  • int test;
  • bzero ((char*) &sin, sizeof sin);
  • sin.sin_family = AF_INET;
  • sin.sin_port = htons (9999);
  • if ((s= socket (AF_INET, SOCK_STREAM, 0)) <0)
  • {
  • perror ("socket");
  • exit (1);
  • }
  • if (bind (s,(struct sockaddr*) &sin, sizeof(sin)) < 0)
  • {
  • perror ("bind");
  • exit (2);
  • }
  • listen (s,4);
  • for(;;)
  • {
  • int g,len;
  • len = sizeof from;
  • g = accept (s,(struct sockaddr*) &from, &len);
  • if (g < 0)
  • {
  • perror ("accept");
  • continue;
  • }
  • switch (fork ())
  • {
  • case -1:
  • perror ("fork");
  • exit (3);
  • case 0:
  • close (s);
  • /* Service rendu */
  • recv(g,buffer,sizeof(buffer),0);
  • pfile=fopen(buffer,"r");
  • if(pfile==NULL)
  • {
  • printf("le fichier n' existe pas!!!");
  • retour=-1;
  • exit(0);
  • }
  • fseek(pfile,0L,SEEK_END);
  • retour=ftell(pfile);
  • taille=fread(taille,buffer,sizeof(buffer),pfile);
  • printf("retour : %d\nfichier :%s\ncontenu du fichier : %d\n",retour,
  • buffer,taille);
  • fflush(stdout);
  • ///*********** TouTe MoDiFiCaTiOn a effectuer ICI : *******************//
  • // SERVEUR ECHO : exemple ::
  • send(g,&retour,sizeof(retour),0);
  • send(g,&pfile,sizeof(retour),0);
  • //......................................//..........................
  • close(g);
  • exit (0);
  • default:
  • close(g);
  • }
  • }
  • }
// Ecrits par NiChaN  --- ***The EaTo By NiChaN***
// www.EaTo.fr.st
// 22/06/2002 
// Petit canevas de serveur unix
// ici il fonctionne en temps que serveur d'echo
// mais peut tous a fait etre utilise pour une application plus grande
// comme un serveur de discution : CHAT 
// ou bien un serveur de stockage de donnée !
// Utilisation mode console :
// Cree des fonctions avec renvoye de valeur si vous desirer l'utiliser en mode graphique !
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <linux/in.h>
#include <netdb.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>
#include <stdio.h>

int main (int argc ,char* argv[])
{
long int retour;
FILE* pfile;
struct sockaddr_in sin, from;
struct servent *sp;
struct hostent *hp;
int s;
char buffer[100];
char *taille;
char *pfichier;
int test;

   bzero ((char*) &sin, sizeof sin);
   sin.sin_family = AF_INET;
   sin.sin_port = htons (9999);
   if ((s= socket (AF_INET, SOCK_STREAM, 0)) <0)
   {
     perror ("socket");
     exit (1);
   }
   if (bind (s,(struct sockaddr*) &sin, sizeof(sin)) < 0)
   {
     perror ("bind");
     exit (2);
   }
 listen (s,4);
 for(;;)
  {
  int g,len;

  len = sizeof from;
  g = accept (s,(struct sockaddr*) &from, &len);
  if (g < 0)
   {
     perror ("accept");
     continue;
   }
  switch (fork ())
    {
    case -1:
      perror ("fork");
      exit (3);

    case 0:
      close (s);
/* Service rendu */
	recv(g,buffer,sizeof(buffer),0);
	pfile=fopen(buffer,"r");
	 if(pfile==NULL)
	 {
	     printf("le fichier n' existe pas!!!");
	    	retour=-1;
	    	exit(0);
	 }     
	fseek(pfile,0L,SEEK_END);
	retour=ftell(pfile);
	taille=fread(taille,buffer,sizeof(buffer),pfile);
	printf("retour : %d\nfichier :%s\ncontenu du fichier : %d\n",retour,
			buffer,taille);
	fflush(stdout);
///*********** TouTe MoDiFiCaTiOn a effectuer ICI : *******************//
// SERVEUR ECHO : exemple ::
	send(g,&retour,sizeof(retour),0);	 	
	
	send(g,&pfile,sizeof(retour),0);

//......................................//..........................
		
      close(g);
      exit (0);

    default:
      close(g);
    }
  
  }
}

 Conclusion

Aucun bug connu a ce jour , si vous en avez un ; Merci de me le faire parvenir!!


 Sources du même auteur

SOURCE_ POUR AFFICHEUR LCD ET CLAVIER MATRICE
Source avec Zip PILECO FILECO -- FILE D'ATTENTE

 Sources de la même categorie

Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas
Source avec Zip Source avec une capture SECURE REMOTE SHELL [WIN32] par ganjarasta
Source avec Zip Source avec une capture SUIVI DE PRODUCTION ONDULEUR PHOTOVOLTAÏQUE SOLARMAX par brunovan
Source avec Zip MINICHAT MULTI-CLIENT par wisar
SOCKET CPP par baptchr55

Commentaires et avis

Commentaire de vbasicboy le 29/01/2005 01:32:06

huummm je vais site tester cela
il me parait bien cool :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales