Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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

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é: 8 652 / 1 243

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Pour les "Membres Club", vous pouvez 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.

Commentaires et avis

signaler à un administrateur
Commentaire de victorcoasne le 10/08/2004 18:06:57

Pour Linux non ?

signaler à un administrateur
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 )

signaler à un administrateur
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...

signaler à un administrateur
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 :)

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
Commentaire de Alpacha le 12/08/2004 04:01:22

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

signaler à un administrateur
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...

signaler à un administrateur
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.
++

signaler à un administrateur
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 :)

signaler à un administrateur
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

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.