Http explorer : serveur web dédié au partage de médias

Soyez le premier à donner votre avis sur cette source.

Vue 19 737 fois - Téléchargée 2 972 fois

Description

Description rapide
----------------------

Http explorer est un serveur Web multilingue dédié au partage de médias (envoi et réception) qui a vu le jour en 2005.
Il dispose d'une interface web compatible aux standards w3c xhtml strict et de son propre socket (pas de winsocket :d il s'agit du socket vb 'SocketMaster' de Emiliano Scavuzzo optimisé pour l'occasion).

Interface web
----------------

L'interface Web permet un affichage par icône, par liste, par mosaïque ou par miniature (des miniatures sont crées et mises en cache pour les images avant l'envoi au client) et un rangement par date, par taille, par type, par album ou par artiste. L'affichage de groupe (comme sous Windows) est possible pour chacun de ces rangements.

L'interface Web affiche aussi sous forme d'info-bulles les informations standard des fichiers (taille, type, date de modification) et des médias (album, artiste, titre, année, piste, durée, débit). Elle permet également le streaming dans les pages des médias sonores.

Enfin cette interface est générée à partir de fichiers XSL (plusieurs sont disponibles: mobile, PC, RSS, etc...) et est donc modifiable à volonté sans avoir à recompiler l'application.

Des aperçus de cette interface sont disponibles ici :

http://http-explorer.sourceforge.net/demo/
http://http-explorer.sourceforge.net/screenshots.php

Socket
--------

Coté socket, j'utilise le socket vb 'SocketMaster' de Emiliano Scavuzzo avec quelques modifications comme la suppression du protocole UDP (inutile pour un serveur web). Les options du socket sont modifiables durant la session dans la fenêtre 'debug' accessible par clic droit sur la barre de titre durant la phase de bêta test.

Fonctionnalités
------------------

Http explorer permet le 'partage à la volée' en glissant un dossier de Windows sur la liste des partages. Des utilisateurs peuvent être définis sur chaque partages afin de les sécuriser.

Chaque envoi ou réception est affiché à la façon d'un p2p avec une info-bulle contenant le nom du client distant, le débit actuel, le débit global, l'adresse IP, la date de début, etc... Un historique affiche les évènements distants (envoi, réception, suppression / renommage / déplacement de fichiers / dossiers, création de dossier, affichage de pages, accès refusés, etc...).

L'application est réduite dans le systray à la réduction de la form principale. Elle peut aussi être configurée pour démarrer réduite par la suite.

L'application dispose d'un filtre IP, d'un filtre de chemins locaux (pour empêcher l'envoi de 'cv.doc' dans tous les dossiers partagés par ex ;) ), d'un gestionnaire de quota DL/UL et d'une personnalisation des dossiers et sous dossiers partagés à l'aide de fichiers '.hexplorer' comparable aux fichiers '.htaccess' d'Apache (un exemple est fourni dans '.\my shared folder\sample\').

Traduction
-------------

L'application est traduite en Portugais, en Anglais, en Français, en Allemand, en Espagnol, en Russe, en Hongrois, en Turc et en Chinois. Les fichiers de traductions sont de simples fichiers XML. La traduction prend effet sur l'application et sur l'interface web.

Conclusion :


N'hésitez pas à me faire part de vos commentaires ou à rapporter un bug!

---
Site web : http://http-explorer.sourceforge.net/
News : http://http-explorer.sourceforge.net/news.php
Démonstration sur un serveur http explorer 1.11 : http://http-explorer.sourceforge.net/demo/
Contact : http://http-explorer.sourceforge.net/contact.php

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Utilisateur anonyme
Oui car le subclassing est volontairement désactivé dans l'IDE sinon en cas d'arrêt sauvage du programme en cours d'exécution (chose courante dans l'IDE) c'est le crash total de l'appli et de l'IDE...

Ce problème ne doit pas se produire en mode compilé.
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

Je ne sais pas pour vous, mais sur Windows Xp ce subclassing ne fonctionne pas. Du moins pas sur mon Pc. Je reçois très facilement cette erreur lors du resize: Erreur '30014', Valeur de largeur de colonne non valide.

Bonne chance.
Utilisateur anonyme
Bonjour et merci pour ton commentaire.

Pas besoin d'une gestion des erreurs dans les sub "resize" car grâce a un subclassing sur la form principale la taille minimum des child forms est bridée et la taille des contrôles présents dans ces forms ne peut donc pas être inférieur à 1.
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

Wooow très très beau travail.

J'ai pas eu le temps de lire le code, mais j'ai une petite remarque rapide à faire à propos du Form_Resize. Tu devrais ajouter un "On Error resume next" peut être. Car sinon l'application risque de planter à chaque fois pour un rien du tout si la souris de l'utilisateur glisse lors du resizing...
Utilisateur anonyme
Merci pour ton commentaire!

Expliquer la source... hum ça risque d'être difficile comme ça, surtout que, justement, je n'ai pas d'étude de cas : j'ajoute les fonctionnalités et les optimisations au gré des humeurs et des demandes :d

Mon seul fil conducteur est ma todolist.

Tout ce que je peux te dire c'est que cette appli repose effectivement sur le socket "SocketMaster" qui utilise directement l'api "ws2_32.dll" et du subclassing pour déclencher les événements (dans PostSocket).

Après, la classe SocketMaster étant un clone du winsocket niveau interface E/S c'est déjà moins compliqué à comprendre.

Si tu veux vraiment comprendre le fonctionnement du code, je te conseille de ne garder que le le socket en remplaçant les fonctionnalités du serveur et l'interface par un simple "hello word" comparable à ceux que l'on fait quand on apprend à se servir de winsocket.

Désires-tu savoir quelque chose de supplémentaire?
Afficher les 36 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.