begin process at 2012 02 08 22:13:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SERVER HTTP,FTP,IRC,POP3,SMTP,NTP AVEC LE WIZARD POUR LA CONFIGURATION ET LES CLIENT GRAPHIQUE TOUS SOUS LINUX / WINDOWS ( VIA WXWINDOWS ET CYGWIN)

SERVER HTTP,FTP,IRC,POP3,SMTP,NTP AVEC LE WIZARD POUR LA CONFIGURATION ET LES CLIENT GRAPHIQUE TOUS SOUS LINUX / WINDOWS ( VIA WXWINDOWS ET CYGWIN)


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Niveau :Initié Date de création :09/08/2004 Date de mise à jour :11/08/2004 15:02:59 Vu / téléchargé :11 634 / 1 374

Auteur : penpeniut

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

 Description

Encore un projet que g retrouvé, les server sont multithreadé avec des semaphore , la gestion signal et tout ce qui va bien. Le wizard permet de creer/modifier les fichier de conf simplement, et ya aussi quelque client graphique adapté

Tous les server/client respect les protocol et la RFC associé ( pas toujours la plus recente mais c retro-compatible)


 Conclusion

a l'epoque jav chercher de la doc pour faire ca et jav rien trouver donc je pense et j'espere que ca sera utile a plein de monde.

je tiens a signaler que tout est en anglais ( sauf les comments)
ca me rapelle un prof qui disait : L'anglais c'est la langue de l'informatique ! alors arreter de vous plaindre bande de feignasse ! ( bon fo dire qu'il nous refiler tous les support de cours et les docs en anglais donc .... mais bon le gas etait russe donc ct langlais ou le russe lol !! )

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Client.zipTélécharger ce fichier [Réservé aux membres club]42 529 octets
  • ELMServConf.zipTélécharger ce fichier [Réservé aux membres club]53 951 octets
  • Server.zipTélécharger ce fichier [Réservé aux membres club]98 749 octets

Télécharger le zip


 Historique

10 août 2004 20:24:57 :
compilation: make linux ( sous linux ) ca va pondre un .bin make cygwin ( sous windows ) ca va pondre un .exe depuis vc++ pour les client sous windows pour faire marcher en dehors de la console cygwin suffit de copier deux dll dans le meme rep que l'exe, cygwin1.dll et cygcygipc-2.dll en ce qui concerne wxWindows sous nux ca chie de temps en temps car les options de compile que wx-config --libs et wx-config --cxxflags renvoie sont pas tjrs bonne , le mieux c editer le makefile ou extraire la commande de compile et l'adapter a votre systeme perso j'utilise une debian 3.0 avec noyau 2.6 maison, g++ et cie en version 3.qqchose et wxGTK v2.4.0 en compilation statique ( pas shared ) et ca compilote tout seul
11 août 2004 15:03:00 :
Explication: Q: pourquoi cygwin ? R: pour permettre la portabilité des prog sous windows sans avoir a tout recoder. Inconveniant: toutes les fonction linux ne sont pas supporté donc parfois le code peu sembler un peu bizarre Q: pourquoi wxWindow ? R: toujours pour un souci de portabilité, en passant par wxWindow, on evite d'ecrire avec les mfc d'un coté, et avec gtk ou autre de l'autre coté Inconveniant: sous linux, le linkage avec les libs de wxWindow est assez hasardeux Q: pourquoi les server en mode console ? R: parce que c souvent comme ca sous nux et ca permet de lancer comme deamon sont bp modif le code Inconveniant: Aucun, si ce n'est de faire raller les obsede du "clic-clic-button" Q: comment faire un deamon ? R: voir cours d'archi :) le principe est simple : on fork -> ca creer un deuxieme processus, on "tue" le pere, le fils est orphelin on fe un nouveau "session leader" et ca se ratache au processus "init" Q: pourquoi defois des processus et d'autre fois des thread ? R: perso , c'est une question de clarté et d'utilité: un thread et un processus on des comportement different ( semaphore/mutex, memoire partagé de base ou non, heritage de certaine variable etc ....) donc suivant les cas d'utilisation on prefere utilise l'un ou l'autre. la encore vo mieux relire ses cours d'architecture systeme :) Q: pourqoi des signaux ? R: cours d'archi :) ex: vous tuer un server, donc fo tuer tous les fils qui trainait pour eviter les zombie ( immmoooooteeeeepppp !!!! ) et faire le menage dans les socket ouverte, bah on fe ca avec les signaux pour dire a tout le monde : "suicide collectif !!" Q: pourquoi defois ca multithread avec un fork et pourquoi d'autre fois non ? R: question de communication entre les processus, ex: le server http ecoute sur le port 80, il recoit une demande de connec, il fork et le fils s'occupe du client pendant que le pere continue d'ecouter, la pas besoin de communiquer entre les client donc le modele avec fork et le bazar est correct. Par contre dans le cas du server IRC c plus cho ! la il ya communication -> donc mise en place de memoire partagé avec des semaphore dans tous les sens ou de pipe ou de socket unix locaux ou je ne c koi encore. pkoi g pas fe ca ? deja paske c casse cou**le et ensuite paske cygwin a quelque prob avec les ipc ( inter processus communication ), tous n'est pas supporte ou de maniere assez strange.donc pas de memoire partage ni de multithread. Comment faire alors pour que le prog ne bloque pas sur un seul client ? LES SOCKET NON-BLOQUANT !!! le principe est simple: on gere un POOL de socket que l'on va observer un certain temps tour a tour grace au macro FD_ISSET FD_* etc ... et a la fonction select qui permet de mettre en premier plan un descripteur sur lekel il se passe qqchose ( pour rapelle sous nux, une socket EST un descripteur de fichier ) voila , on peu gerer un pool de client presque simultanement sans creer de thread ou proccessus. Le hic, c'est la monté en charge lorsque que l'on utilise ce modele de server, c tres gourmand en ressource !! ( la encore cf cours d'architecture systeme pour plus d'explication ) Q: le server ntp n'est pas multithreader ? R: paske sinon ca risque de creer des ecart de qq nanoseconde ( c un server de temps, fo etre precis :) ) pour les details -> voir comment marche le scheduler de nux lors de l'execution de process concurrent....... Bon d'accord c pas la vrai raison ( meme si effectivement ca peut arriver ) c surtout que jav la fleme de le faire correctment , un packet ntp fe dans les 48 octet, on est en mode udp, donc du non connecté, bref ca rique pas de bloquer tres longtemps lors d'une connection cliente.

 Sources du même auteur

Source avec Zip MASTERMIND AVEC IA, MUSIC VIA UN MOTEUR 2D/3D SOFTWARE EN DI...
Source avec Zip SERPENT EN MODE GRAPHIQUE ( MODE 13H ) SOUS DOS

 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 victorcoasne le 10/08/2004 18:06:57

Pour Linux non ?

Commentaire de penpeniut le 10/08/2004 18:18:22

sous linux :

- server -> via makefile
- client/assistant -> via makefile + wxWindow d'installé

sous windows

- server -> via makefile + cygwin d'installé
- client/assistant -> via projet vc++ 6 + wxWindow d'installé

les makefile et les dsp/dsw sont dans les zip

wxWindow c un framework cross-plateforme assez sympa, tres simple d'utilisation et de comprehension ( http://www.wxwindows.org )

Commentaire de Thaeron le 10/08/2004 19:00:31

j'ai wxWindow sur mon pingouin et impossible de compiler les severs comme les clients, la compilation via le makefile génére des erreurs...

Commentaire de penpeniut le 10/08/2004 20:10:19

c bien bo de dire mais fo ptet mettre les erreur paske sinon pas pouvoir t'aider :)

Commentaire de Thaeron le 11/08/2004 19:52:40

Je voulais juste t'avertir pas résoudre le problème mais puisque tu veux le log:
compilation du server ftp:
sh-2.05b$ make linux
g++ -o ELMFTPServ.bin src/Mini_ftp_server.cpp -lpthread
Dans le fichier inclus à partir de src/Mini_ftp_server.cpp:25:
src/log.h:159:1: attention : pas de retour chariot à la fin du fichier
src/Mini_ftp_server.cpp:39: error: erreur de syntaxe before `*' token
In file included from src/Mini_ftp_server.cpp:70:
src/signaux.h: Dans function « void End_server(int) »:
src/signaux.h:9: error: `mainproc' undeclared (first use this function)
src/signaux.h:9: error: (Each undeclared identifier is reported only once for
   each function it appears in.)
Dans le fichier inclus à partir de src/Mini_ftp_server.cpp:70:
src/signaux.h:51:2: attention : pas de retour chariot à la fin du fichier
Dans le fichier inclus à partir de src/Mini_ftp_server.cpp:71:
src/appfct.h:454:1: attention : pas de retour chariot à la fin du fichier
Dans le fichier inclus à partir de src/Mini_ftp_server.cpp:72:
src/conf.h:239:2: attention : pas de retour chariot à la fin du fichier
Dans le fichier inclus à partir de src/Mini_ftp_server.cpp:73:
src/ftp_process.h:918:2: attention : pas de retour chariot à la fin du fichier
src/Mini_ftp_server.cpp: Dans function « int main(int, char**) »:
src/Mini_ftp_server.cpp:206: error: erreur d'analyse syntaxique before `('
   token
src/Mini_ftp_server.cpp:249:2: attention : pas de retour chariot à la fin du fichier
make: *** [linux] Erreur 1

Compilation de ELMHTTPNav:
sh-2.05b$ make linux
g++ ELMHTTPNav.cpp `wx-config --libs` `wx-config --cxxflags` -o ELMHTTPNav.bin
ELMHTTPNav.cpp:26:30: wx/html/htmlproc.h : Aucun fichier ou répertoire de ce type
In file included from ELMHTTPNav.cpp:37:
htmlproc.h: Dans member function « void htmlproc::HttpGet(wxString, wxString)
   »:
htmlproc.h:60: attention : cannot pass objects of non-POD type `class wxString'
   through `...'; call will abort at runtime
ELMHTTPNav.cpp:82:1: attention : pas de retour chariot à la fin du fichier
make: *** [linux] Erreur 1

La c'est un fichier manquant, mais lorsque je compile le client irc j'ai une longue liste d'erreurs (trop longue a c/c)
Sinon la compilation des autres clients ont qq warnings mais le binaire est bien présent.
J'ai la slackware 10.0 avec gcc 3.3.4

Commentaire de penpeniut le 11/08/2004 20:57:58

pour le ftp c la class log qui passe pas, jav eu ce prob avec une vieille version de gcc qui visiblement comprenait pas le c++ (?!?!?)

pour le navigateur, bah il trouve pas l'entete, essay de mettre a jour ta lib wxWindow

par contre autre bizarrerie avec wxWindow, quand je compile le client IRC avec g++ 2.95 ou g++ 3.0.1 ca marche impec, mais avec g++ 3.4.1 il me sort des erreur de surcharge d'operateur (?!?!?)

essaye de recup g++ 2.95 et voir ce que ca donne
mais c vrai que le coup du g++ 3.4 foireux me laisse perplexe

Commentaire de Alpacha le 12/08/2004 04:01:22

a cause des bugs, exe souhaitable nan? enfin bin/exe
Alp

Commentaire de Thaeron le 12/08/2004 14:23:44

c'est le dernier wxGTK que j'ai (2.4.2), j'ai download et compilé ya moins de 2 semaines (pour xMule). Je pense pas qu'on puisse considérer Gcc 3.3.4 comme une vieille version...

Commentaire de Hellaynnea le 16/08/2004 18:55:32

Salut,
perso cygwin c'est pas forcément le bon choix si vous voulez que ca tienne pendant 1 an sans pb. Ca fait plus d'un an que je bosse dessus. J'ai du développer un prog de vidéosurveillance multi caméras (25,50,etc...) le pb c'est que j'ai un client sous WIN32 et un serveur sous cygwin. Le serveur arrive a se bloquer pendant plus de 15 min sur un connect, et le syscall select peut faire monter le proc a 100% d'un coup . De même le syscall poll peut bloquer indéfiniment pour une raison X. Je crois qu'ils simulaient ca avec des jeux de process. Une autre chose, le kill de thread sous cygwin est foireux, idem que le pthread_create. Essayez de regarder le nb de thread créés par une appli sous cygwin (ctrl+alt+suppr), vous verrez que cygwin les créé par paires. Un autre pb, encore sur le connect, cygwin supporte mal les connects en multi-thread. Il faut les différer par un quelconque moyen, que l'appel au connect ne soit pas effectué a la même milliseconde.
++

Commentaire de spyirc le 27/08/2004 23:59:36

bonjour j ai bien aimer votre serveur irc
sur windows j ai pas arivee a le compilee sous vc++6
tu puex m aide a le faire marci :)

Commentaire de spyirc le 29/08/2004 17:57:00

je veux le porte ver vc++ parcque c est imposible de le compile sur cygwin

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,889 sec (3)

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