Messenger -> gestion des connectes par serveur asp, transfert de fichier etc

Soyez le premier à donner votre avis sur cette source.

Vue 5 055 fois - Téléchargée 644 fois

Description

Un petit messenger que j'ai dvp pour une utilisation intensive dans un établissement scolaire ! Assez complexe qd mm pour le newbie car je n'ai pas pour habitude commenter mes codes persos : en effet, à la base je n'ai pas créé ce code pour le poser ici. Il est dur à comprendre peut-être mais il fonctionne bien : pour cause, il a déjà servi !

Au menu :
- le dossier ASP contient les fichier ASP nécessaire à la mise en ligne du serveur
- TRAY contient le module qui me sert à mettre l'appli dans le systray (inspiré d'une source d'ici)

- l'appli contacte le serveur ASP qui lui est indiqué en constante dans le code pour connecter, déconnecter un utilisateur, recevoir la liste en ligne sur le serveur
- de là, elle possède les IPs des utilisateurs connectés et les contactent directement lorsque que la communication est demandée par un double-clique sur le pseudo de la personne
- plusieurs petites astuces sont à connaitre : jetez un oeil dans la rubrique INFO (la petite icone avec le "i")
- on peut parler avec autant de personne que l'on veut, mais seulement à deux (par de comm' à trois ou + quoi)
- vous pouvez vous transférer des fichiers de taille illimitée
- vous pouvez définir si oui ou non vous acceptez les prochains appels des autres connectés (pour être serein, mettez non)
- réduction dans le tray
- une option "tjrs visible"
- 3 modes d'affichage
- une appli lancée à la fois (donc impossible de lancer 15 fois msger...)
etc...

Source / Exemple :


src

Conclusion :


Je vous laisse voir le reste
Je suis bien conscient que peu d'entre vous parviendront à faire tourné une conversation : je ne vous sous-estime pas, mais il faut plusieurs PCs dont un configurer pour héberger un serveur asp, par exemple avec le gestionnaire de serveur web personnel de microsoft.

L'appli est en constante évolution, je ne suis mm pas sur que la version posée ici tourne aussi bien que les précédentes, ni d'ailleurs si c'est la dernière (ca fait un bout de temps que le projet est hors de mes préoccupations...)

tjrs est-il qu'elle a déjà servi donc elle doit normalement remplir ses fonctions

NB : pour ceux qui l'execute sans le serveur, il se peut qu'elle ait parfois des tps de réactions un peu long : elle chercher ce fichu serveur ! be patient, elle ne plantera pas (normalement !)

@+ Tchao

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
466
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
20 avril 2007

Merci pour ton commentaire.

Voici pour tes questions :

"Est-ce la seule méthode pour imposer à winsock une trame de 2 ko?"
> à ma connaissance oui. Quoi qu'il en soit, tu peux envoyer des trames plus longues, par exemple 2 Mo ! Mais Winsock a sa propre limite et va de lui-même découpé ta trame, elle arrivera en plusieurs morceaux, et je préfère de loin gérer moi-même le découpage. En ce qui concerne sa propre limite pour son découpage, je ne connais pas la valeur... peut-être 8196 octets.

"c'est comment se fait-il que l'instruction get reprend la lecture au bon endroit "
> imagine toi 2 minutes dans la peau d'un parfait abruti qui désire lire le contenu d'un fichier TXT dans le blocnotes, et qui pour lire, place le curseur de blocnote à la 1ère lettre, puis lis les X premières lettres et avance d'autant le curseur et ainsi de suite...... c'est comme ça que s'opère la lecture d'un fichier ! Sont traités les octets sous le curseur, à l'occasion nommé pointeur, qui avance au fil des octets lus. On dit qu'il "consomme" les octets.

"Est-ce que ça vaut le coup de se prendre un peu la tête ou est-ce qu'avec des string ça passe quoiqu'il en soit ?"
> Oui, ça passera toujours quoi qu'il en soit. Si il est coutume de manipuler les données brutes (binaire) avec des buffer de bytes (tableau d'octets) c'est parceque ce type d'accès est plus rapide pour faire des opérations. Dans le cas de notre transfert, ça ne change rien. Un octet est un octet, "ABC" vaut [65,66,67] et voilà tout.

@+
Celiphane
Messages postés
2
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
20 février 2004

Salut, il n'y a pas de commentaire sur cette source depuis un moment mais peut-être pourras-tu me répondre...
Cette source m'a intéressé pour le système de téléchargement de fichier. J'espère que tu pourras m'éclaircir un peu.
Il y a deux choses que je comprends mal...
Quand tu lis le fichier à envoyer avec get, tu le stock dans une variable string de 2 ko et tu l'envoi au client puis tu attends la réponse du même client pour continuer l'envoi avec une seconde trame de 2 ko etc. sauf pour la dernière trame pour laquelle on dimensionne une nouvelle string(c bien ça?)
Donc on est sur d'envoyer des trames de 2 ko (pas plus) avec le winsock... Est-ce la seule méthode pour imposer à winsock une trame de 2 ko?
De plus un truc je pige ne pas c'est comment se fait-il que l'instruction get reprend la lecture au bon endroit du fichier à envoyer?
Mais bon sinon ça fonctionne... et même bien. Des fichiers de plus de 100 Mo, des .exe, transmis à l'octet près. ! Et le système de question réponse (j'ai n'ai pas tout pigé encore mais je vais décortiquer le code) est vraiment excellent !
Autre chose,
J’ai lu dans MSDN qu'il valait mieux manipulé les fichiers binaires (c'est bien des .exe par exemple?) avec des variables de type byte et des tableaux. J'ai essayé mais évidement ça ne fonctionne pas (je suis débutant de chez débutant aussi... ).J’ai des difficultés à dimensionner les variables/tableaux de type byte... qu'en penses-tu? Est-ce que ça vaut le coup de se prendre un peu la tête ou est-ce qu'avec des string ça passe quoiqu'il en soit ?
Merci de ton aide de toutes façons. et bravo aussi....!
Messages postés
466
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
20 avril 2007

salut, merci pour ton compliment.
en ce qui concerne ton pb, sache de prime abord que le prog fonctionne "normalement" puisqu'il a tourné qq semaines sur un réseau local, (cependant la méthode qu'il emploie n'est surement pas un modele du genre m'enfin :) ), mais cette allégation ne va pas résoudre ton pb.
A mon humble avis, la solution devrait se trouver sur la facon ou ton serveur Asp interprete... l'asp !
Je ne vois que ca, puisque ca passe ailleurs ! Je ne dis pas qu'il l'interprete mal, non, mais qu'il doit surement voir qq trucs différement, peut etre parcequ'il est pas ou trop à jour !
Trifouille le script dans ce sens et bonne chance !
Messages postés
32
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
27 décembre 2003

.... Salut, c bon g trouvé un hebergeur asp gratos mais le pb c ke quand je veux uploader le fichier global.asp il me met une erreur...:

On Error Resume Next Explained

This four word combination is used to tell the server to resume the next line of code if it finds an error. The situations you would want to use this in is when you are writing your own error trapping code and you want to display your error codes, not the ASP default ones.

Syntax:

Place "On Error Resume Next" in your code where you want the program flow to continue after it encounters an error. It is usually placed at the top of each page. *

By: Jared Stauffer

* Brinkster requires the use of "On Error GoTo 0" and the checking of the err object whenever you are using "On Error Resume Next". The use of the "On Error Resume Next" directive in combination with database connections, can result in server hang-ups and other server problems.

Si qqun a une solution (une modif du script) qu'il fasse un petit signe ca serais sympa !!! et pour ceux que ca interesse l'hebergeur asp gratos est
http://www.brinkster.com/

alé a+ et bonne continuation a tous !!!

ps: il est génial ce prog !!! merci !
Messages postés
466
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
20 avril 2007

que dire ?

merci et bonne continuation...

(ps n'en faites qd mm pas trop !) ;)
Afficher les 12 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.