begin process at 2010 09 09 14:23:00
  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 240

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 [C++][W IN]LIBRAIRIE HTTP par nipepsinicolas
Source avec Zip ASPIRATEUR RÉCURSIF MACOS par tontonCD
Source avec Zip INTÉGRATION SIMPLE D'UN CLIENT IRC À UNE APPLICATION par PJulot
LIBRAIRIE POUR SOCKETS C++ par genetApt151
Source avec Zip COVERT ART IMAGE par nanonavich

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

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
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,796 sec (4)

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