|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 | ||||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
bonjour
je n'avais effectivement pas mis de setsockopt. ce que j'ai fait... seulement, quand je connecte deux clients en meme temps, ben le serveur ne recoi plus rien du tout .je poste mon code si jamais j'ai fait une grosse boulette... et je continue à chercher... Code :
Code :
[EDIT] en fin de compte, ca a l'air de fonctionner... |
||||
|
|
00
|
|
|
#22 |
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Beaucoup de détails sont masqués par ton interface SSL.
Côté serveur: aïe: la boucle avec le listen puis la socket de réception est mal gérée à mon avis. En effet, dès que le premier listen réussi tu rentre dans ta boucle de réception. Cela empêche un second client de se connecter. Le schéma classique est: -> un thread avec ta socket listen/accept. -> un thread avec les sockets connectées (issues de l'accept) pour le traitement des messages. Cependant, si tu veux rester sur un seul thread, cela devrait ressembler à quelque chose comme ça: 1/ Initialisation de ta socket d'écoute (mode non bloquant). 2/ listen sur cette socket 3/ boucle while(NonFini) 3.1/ Ajout de la socket d'écoute pour le select (je ne me souviens plus s'il faut la mettre dans le set de lecture ou d'écriture) puis de toute les sockets de connexions obtenus ensuite. 3.2/ Select 3.2.1/ Sortie du select sur timeout: traitement du timeout 3.2.2/ Sortie du select sur erreur: traitement de l'erreur 3.2.3/ Sortie du select sur un évènement socket: 3.2.3.1/ La socket d'écoute à déclencher la sortie: faire l'accept et rajouter la nouvelle socket dans l'ensemble adéquat pour le select 3.2.3.2/ sortie sur une des sockets de connexion: traiter la réception/envoi. |
|
|
00
|
|
|
#23 |
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
je pense avoir fait comme tu m'as dit pour tout faire sur un thread (mon cerveau restant hermétique pour comprendre comment faire plusieurs thread
mais je compte repotasser l'affaire dans l'aprem...)et j'ai une erreur de segmentation sur cette ligne la... je comprends pas pourquoi... |
|
|
00
|
|
|
#24 |
![]() ![]() ![]() Raymond Inscription : mai 2007 Messages : 9 058 ![]() |
Bizarre parce que "fd_set readfs;" ne fait que allouer une variable locale. Tu dois avoir un problème ailleurs.
__________________
Raymond Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi ![]() Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.e-verbe Un logiciel de conjugaison des verbes de la langue française.Ma page personnelle sur DVP. |
|
|
00
|
|
|
#25 | ||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
mea coulpa, l'erreur est sur :
voila la version avec les changements, que j'espère que j'ai pas fait de boulette... Code :
je rectifie ca de suite... ![]() [EDIT 2 ] mais du coup j'ai un problème avec le select... ne faudrait il pas que je fasse l'accept avant quand meme?? |
||
|
|
00
|
|
|
#26 | |||
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
00
|
|
|
#27 | |||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
Bonjour
je suis repartie sur refaire un serveur en enlevant tout le ssl afin 'y voir plus clair... du coup, je suis arrivée à ca : Code :
la buse en anglais se met au déchiffrement... [EDIT] c y es, il fonctionne! par contre quand je met deux clients, le premier arrivé, il m'affiche tout au fur et à mesure et pour le second, il doit mettre tout qq part et après il me rebalance tout... Citation:
merci pour vos réponses../. |
|||
|
|
00
|
|
|
#28 | ||
![]() ![]() Inscription : décembre 2003 Messages : 14 505 ![]() |
Ne pas boucler la fonction de traitement du client. Ici, tu fais de l'évènementiel, pas du multi-tâche...
Ceci fonctionne sous Windows (j'ai ouvert 3 clients Telnet). Non testé ailleurs, mais c'est censé fonctionner sous Linux. (en remettant un N° de port qui va bien) Code :
__________________
Pas de Wi-Fi à la maison : CPL Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://www.bien-programmer.fr/ http://bien-programmer.forum-actif.net/forum.htm |
||
|
|
00
|
|
|
#29 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 590 ![]() |
mettre un \n dans les printf, ou encore mieux un fprintf ( stderr , ..) (qui n'est pas bufferisé => synchrone)
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#30 |
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
rebonjour!
merci beaucoup pour votre aide ^^ j'ai juste une erreur de segmentation dont je n'arrive pas à me débarasser... <...> [EDIT]la buse a mis son cerveau en marche, j'ai rajouté ca avant le FD_ISSET et ça fonctionne nickel!merci beaucoup!! maintenant, je vais rajouter mon ssl dedans...
|
|
|
00
|
|
|
#31 |
![]() ![]() Inscription : décembre 2003 Messages : 14 505 ![]() |
Attention, as-tu bien remarqué la modif que j'ai faite autour de recv(), notamment le placement du 0.
__________________
Pas de Wi-Fi à la maison : CPL Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://www.bien-programmer.fr/ http://bien-programmer.forum-actif.net/forum.htm |
|
|
00
|
|
|
#32 | ||||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
Citation:
grande question : j'ai juste rajouter mes headers d'openssl dans mon code Code :
Citation:
![]() ![]() [EDIT] bah j'ai rajouté d'autres headers et ça a l'air de fonctionner...
|
||||
|
|
00
|
|
|
#33 | ||||
![]() ![]() Inscription : décembre 2003 Messages : 14 505 ![]() |
Citation:
Citation:
__________________
Pas de Wi-Fi à la maison : CPL Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://www.bien-programmer.fr/ http://bien-programmer.forum-actif.net/forum.htm |
||||
|
|
00
|
|
|
#34 |
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
|
|
|
00
|
|
|
#35 |
![]() ![]() Inscription : décembre 2003 Messages : 14 505 ![]() |
Pour écrire une application réseau, il faut maitriser les bases du C. Tu devrais savoir ce qu'est un index (de tableau).
Pour placer le 0, tu écris dans la chaine, qui est un tableau, donc adressé par un index. L'index utilisé risquait d'être faux en cas d'erreur. (valeur hors limites < 0)
__________________
Pas de Wi-Fi à la maison : CPL Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://www.bien-programmer.fr/ http://bien-programmer.forum-actif.net/forum.htm |
|
|
00
|
|
|
#36 |
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
ok
j'avais raté un épisode merci (moi j'appelle ca un indice... )par contre mes histoires d'header, c'est space... c'est jamais les memes qui ne fonctionnent pas... |
|
|
00
|
|
|
#37 |
![]() ![]() Inscription : décembre 2003 Messages : 14 505 ![]() |
Oui. indice est correct (il est possible que 'index' soit le mot anglais de 'indice').
__________________
Pas de Wi-Fi à la maison : CPL Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://www.bien-programmer.fr/ http://bien-programmer.forum-actif.net/forum.htm |
|
|
00
|
|
|
#38 |
|
Expert Confirmé Sénior
![]() |
Ce que je sais, c'est que "indices" est une des formes plurielles acceptées pour "index".
Par contre, la version anglaise de Wikitionary considère "indice" au singulier comme du latin.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#39 | |||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
bon, je comprends rien à mon programme...
les headers, c'est bon, il fonctionne avec mais après, je peux pas rajouter de code ssl, il me met toujours : Citation:
Code :
je ne comprends pas... actuelllement, c'est quand je rajoute le que ça marche plus... si quelqu'un pouvait m'éclairer... parce que la... |
|||
|
|
00
|
|
|
#40 | ||||
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 175 ![]() |
![]() bonjour! alors ce matin, il acceptait que je rajoute mes lignes ssl... la nuit lui a porté conseil au petit?? ![]() bref, ça fonctionne quasiment... j'ai juste un petit (lol) problème... c'est qu'à la réception le dernier client qui s'est connecté a une erreur sur sa socket et donc se ferme... je ne vois pas pourquoi... voila, le code de mon serveur avec le ssl : (a priori c'est pas du coté du client parce que mse clients sont tous les 3 les meme...) Code :
[EDIT] en fait ca ne le fait que quand j'ai deux clients totalement identique à ce niveau la : Code :
client 2 : 5 client 3 : 10 et ça fonctionne... je ne comprends pas pourquoi ca ne fonctionnerai pas si client 1 et client 3 étaient tous les deux à 2... |
||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com