CRÉER UN SERVEUR DE BASE TOUT PROTOCOLE

Akebo_Shi Messages postés 4 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 3 mars 2004 - 3 mars 2004 à 23:13
cs_Grais Messages postés 33 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 décembre 2005 - 20 août 2005 à 14:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20916-creer-un-serveur-de-base-tout-protocole

cs_Grais Messages postés 33 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 décembre 2005
20 août 2005 à 14:19
ok :)
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
20 août 2005 à 14:14
Cela signifie que la commande /sockwrite n'a trouvé aucun socket ayant un nom commencant par theclient (le message est pourtant explicite non ?)

Le but de mon addon n'est pas vraiment de l'utiliser, mais plutôt de comprendre son fonctionnement, et de se servir de mon code pour base d'un vrai serveur. (A partir de ce code, en le complétant, tu peux par exemple faire un serveur IRC, HTTP, etc, mais il y a du boulot pour réaliser ca)
cs_Grais Messages postés 33 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 décembre 2005
20 août 2005 à 14:14
Ah plus la peine j'ai trouvé
cs_Grais Messages postés 33 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 décembre 2005
20 août 2005 à 13:29
je ne sais si je me suis trompé quelque part car je ss nood mais ça met :
* /sockwrite: 'theclient*' no matching sockets (line 35, script12.ini)
HRdesalpes Messages postés 64 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 29 juillet 2006
27 févr. 2005 à 01:14
merci sa promet surtout en tcl....
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
26 févr. 2005 à 17:48
Il te suffit de mettre sur écoute le serveur sur le port de ton choix (par exemple le port 80), puis nimporte quel client/socket pourra s'y connecter.
Après c'est à toi de compléter mon code pour qu'il y est une véritable interaction entre le serveur et le client. (là le serveur ne fait qu'afficher se que le client envoie, il ne répond à aucune donnée)
HRdesalpes Messages postés 64 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 29 juillet 2006
26 févr. 2005 à 11:37
lu,
moi jai un dedier et je cherche le moyen denvoyer des socket jai pas trop compri le script alors eu est ce que sa pe envoyer des sovcket genre port 80 a une adresse ip?
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
17 juil. 2004 à 15:02
Un serveur n'est pas associé à un nom. Il est défini par un ip et un host.

Je pense que tu confonds avec un serveur IRC ou tout autre serveur déjà orienté vers un protocole précis ..
_Tiamat_ Messages postés 13 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 13 août 2004
17 juil. 2004 à 10:17
ou on met le nom du serveur? svp
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
6 juil. 2004 à 09:48
Nimporte quel client peut faire l'affaire.
mIRC, Telnet, etc
Après tout dépend des données que l'on souhaite gèrer par le serveur, et que le client doit envoyer.

Le client de base donnerait :

alias client {
sockopen client ip port
;ici en l'occurrence on pourrait mettre notre ip pour tester notre propre
;serveur
}
on *:sockread:client:/sockread %a | echo -a %a

Ensuite évidemment, selon le type de serveur géré, il va nous falloir compléter notre code, par exemple pour un serveur http, le client aura besoin d'envoyer une requete + les éventuels headers par l'intermédiaire de l'événement sockopen.
ChAnG-Fu Messages postés 165 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 1 juillet 2006
5 juil. 2004 à 23:40
A quand le client lol


Ca va me servir a un jolie projet ca c super
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
6 mars 2004 à 09:21
ChAnG-Fu : oui je sais que mon $rand peut être maladroit, mais étant donné que c'est juste un exemple, j'ai voulu faire le plus simple possible.
Je peux le faire sans hash aussi, tout simplement :

:rerand
var %nbr = $rand(0,9999)
if $sock(theclient $+ %nbr,0) { goto rerand }
else { sockopen theclient $+ %nbr }

Il suffit tout simplement de vérifier si le socket est déjà ouvert avec $sock(nomdusocket,0) (retourne 1 si connecté, 0 dans le cas contraire)

"Et puis si tu veut je peut bosser sur un syteme d'ignore par ip ou fourniseur."
Ca, je peux le faire, mais cette source sert UNIQUEMENT à titre d'exemple, alors jy est fournis le stricte minimum.
ChAnG-Fu Messages postés 165 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 1 juillet 2006
5 mars 2004 à 21:56
Sorn, pour le $rand(0,9999) c dangereux, utilise une hash pour les sockaccept paske même si ya 1/9999 chance de retomber sur le même nbr ya des chances quand même
style au socklisten: hmake serv-connec
et a chaque sockaccept tu verifie si le nbr n'est pas utilise:
on *:SOCKLISTEN:monserveur:{
:rentry | var %nbr = $rand(0,9999)
if ($hget(serv-connec,%nbr)) { goto rentry }
hadd serv-connec %nbr %nbr | sockaccept $+(theclient,%nbr)
}
Et puis si tu veut je peut bosser sur un syteme d'ignore par ip ou fourniseur.

En tout cas pour les noobs c'est assez simple je vais utilisé ta base pour coder mon projet :)
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
4 mars 2004 à 07:12
deliriumtribu :

1ère question : sa sert à faire de ton PC un serveur. Par la suite, en approfondissant les sockets niveau serveur, tu pourras coder par exemple des serveurs irc, http, etc.

2ème question : tu charges l'addon dans mIRC, tu ouvres le dialog, tu spécifies un port, et tu cliques sur Lancer. Ensuite du t'y connecte avec nimporte client (voir réponse 3)

3ème question : non, il ne faut rentrer d'ip vu que tu le fais tourner sur ton pc. Pour essayer de te connecter, tu peux essayer avec nimporte quel type de client (telnet ou autre), ou même un naviguateur, en allant sur http://tonip:portspécifié
Exemple : http://80.50.40.30:170 (dans ce cas, j'ai spécifié le port 170 dans l'addon)

4ème question : les requetes, ce sont les données que s'échangent les applications client/serveur, pour recevoir une réponse de l'autre.
Par exemple, dans le protocole http, le client (naviguateur) envoie à un serveur : GET http://sitenimp.com/page.html
Et le serveur va lui réponfre 200 OK (Cet requete renvoyée signifie que que la requête envoyée par le naviguateur a aboutie.)

Voila, je pense avoir répondu à tout.
Si tu cherches à utiliser cet addon dans un but utile, tu peux passer ton chemin, c'est + un code pour apprendre à faire un serveur qu'à son servir tel quel.
deliriumtribu Messages postés 46 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 28 avril 2004
4 mars 2004 à 01:43
Si c t possible d avoir des informations complémentaire pour les n00b :
- a quoi ca sert ?
- comment ca marche ?
- fo pas rentré un ip qq part aussi ?
- c koi l envoi des requetes ?

Merci d avance :)
(dsl mais je debute donc jme renseigne)
Akebo_Shi Messages postés 4 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 3 mars 2004
3 mars 2004 à 23:13
Bien scripté
Bien expliquer
Ca vaut un 8/10 bien mérité ;)
Rejoignez-nous