Sockets
Stagiaire WDF
Inscrit:
29/06/2004 09:31
De Paris
Post(s): 40
Bonjour,

J'ai jeté un oeil à la classe sockets évoquée ci-dessous et ma question est la suivante:

Est-elle plus stable en utilisation intense que les fonction sockets de Windev?

J'utilise le socketecrit pour envoyer des données audio à partir de mon soft à 1 serveur shoutcast ou icecast & le thread n'est pas des plus stables... (arrêt inopiné sans message d'erreur dans le thread... )

Merci.


Salut, si tu veux faire des communication par sockets, je te suggère d'utiliser cette classe. elle fonctionne très bien et elle est facile à intégrer dans du code existant.

http://www.windasso.org/download/sources/Sockets7.zip


Contribution le : 28/06/2005 14:07
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Une gestion des threads avec les fonctions sockets me semble sensible à mettre en place car cela demande à ne pas mélanger les messages recus d'où peut être la nécessité d'utiliser les sections critiques.


Contribution le : 28/06/2005 15:22
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Stagiaire WDF
Inscrit:
29/06/2004 09:31
De Paris
Post(s): 40
J'ai eut du mal à créer un thread <à peu près stable> mais j'ai des arrêts sans qu'aucun message n'apparaisse.

J'utilise deux callback (Windev) appelés par le moteur audio de bass, le premier qui enregistre les données audio , le second qui récupère la partie encodée en mp3 ou ogg pour l'écrire dans vers le serveur shoutcast ou icecast...

J'ai quand même réussi à tenir 3 heures une fois... en diffusant sur Internet !

Comment pense-tu que les sections critiques pourrait améliorer cela ?

Contribution le : 28/06/2005 15:34
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bien que non utilisés les sections critiques permettent d'exécuter une partie de code défini que par un seul thread à la fois.(Les autres threads étant mis en file d'attente).

Cela peut dans certain cas eviter certains débordements.

Un exemple est livré en standart avec WinDev :
WF Pool de threads.

L'exemple suivant permet de créer une socket sur le poste serveur, et de gérer les connexions des postes clients dans un thread. Si la connexion est acceptée, la gestion de cette connexion est réalisée dans un thread spécifique.

Il y a un thread exécuté par connexion. Chaque thread utilise la même fonction de service "ProcédureGestion". Pour autoriser l'exécution de la procédure par différents threads simultanément, il est nécessaire de changer le mode de synchronisation des threads : utilisez la fonction ThreadMode avec le paramètre ThreadSectionCritique dans le code d'initialisation du projet. La synchronisation entre threads doit être effectuée manuellement (pour plus de détails, consultez l'aide sur les threads ).

SI PAS SocketCrée("Serveur", 8000) ALORS
   Erreur("erreur création " + ErreurInfo(errMessage))
SINON
   ThreadExécute("Thread1", threadNormal, ProcédureAttente)
FIN 

Procédure ProcédureAttente()
BOUCLE
   SI SocketAttendConnexion("Serveur") ALORS
      Canal est une chaîne
      Canal = SocketAccepte("Serveur")
      ThreadExécute(Canal, threadNormal, ProcédureGestion, canal)
   FIN
FIN 

Contribution le : 28/06/2005 15:52
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Stagiaire WDF
Inscrit:
29/06/2004 09:31
De Paris
Post(s): 40
Merci pour ces conseils.

Ne peut-on pas gérer des sections critiques que pour une partie de code (ou d'une fenêtre par exemple ?)

Je me voit mal passer en revue tout le code de Mp3Tools qui totalise environ 25.000 lignes aujourd'hui... pour y synchroniser tous les thread !

Contribution le : 28/06/2005 16:00
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Oui, bien sur et c'est là tout l'intérêt, le code 'critique' doit être balisé par les fonctions

SectionCritiqueDébut()
// Deux threads ne pourront pas exécuter ce code en même temps
...
SectionCritiqueFin ()





Contribution le : 28/06/2005 16:04
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Anonyme
Pour info, tu t'intéresses à Shoutcast...
Télécharge le produit Radio Net Gold, totalement écrit en WD 8...

Cordialement,

Allan

Contribution le : 03/10/2005 18:43
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Stagiaire WDF
Inscrit:
27/12/2004 12:14
Post(s): 38
Je suis parti de l'exemple windev (serveur de socket) pour écrire une classe pour créer un Serveur Web autonome. cela fonctionne bien, j'ai aussi créer des balises de code windev compilé à la demande.

Par contre effectivement, il y a des plantages quand j'ai plusieurs accés simultané et que plusieurs personne demande le refresh de page.

En tout il y a une evidence Threads et fonctions locales ne font pas bon ménage. Il faut obligatoirement passer des procedure globale pour eviter les problèmes de pile mal géré par windev.Et ca c'est bien dommage car ca fonctionne pas trop mal mais ca fait un code pas trés portable.

Contribution le : 04/10/2005 10:14
Créer un fichier PDF de la contribution Imprimer


Re: Sockets

Inscrit:
19/11/2002 12:20
Post(s): 390
Bizarre, j'ai fait un serveur qui tourne 24h/24 et qui a plusieurs clients connectés au serveur tout le temps, je n'ai pas eu ce soucis et j'utilise pourtant des fonctions locales.

Tu parles de combien de sockets là?

Contribution le : 04/10/2005 10:24
Créer un fichier PDF de la contribution Imprimer


Re: Sockets

Inscrit:
19/11/2002 12:20
Post(s): 390
Citation :
Pour info, tu t'intéresses à Shoutcast...
Télécharge le produit Radio Net Gold, totalement écrit en WD 8...

Cordialement,

Allan


Sauf erreur ce produit est payant et le source n'y est pas intégré?

Contribution le : 04/10/2005 10:28
Créer un fichier PDF de la contribution Imprimer


Re: Sockets
Anonyme
2 ou 3 connexions mais qui demande le resultat en simultané.

Le problème ne vient pas des sockets mais des threads

Contribution le : 06/10/2005 15:08
Créer un fichier PDF de la contribution Imprimer


Re: Sockets

Inscrit:
19/11/2002 12:20
Post(s): 390
Quel est le problème en fait?
Le thread se ferme tout seul ou la socket plante et du coup le thread se ferme?

Contribution le : 06/10/2005 22:01
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2