Question

Je souhaite lancer une application client MUD , qui se connecte à un MUD hébergé. sur un serveur telnet. La seule chose qui compte pour moi, c’est qu’il fonctionne sans douleur et efficacement sur n’importe quel système d’exploitation. Mis à part cette exigence, je ne suis pas vraiment vendu dans aucune langue.

Je recherche donc une bibliothèque de clients telnet disponible gratuitement sur laquelle je peux baser mon application, afin de ne pas trop traiter des détails du protocole.

Était-ce utile?

La solution

Je considérerais toujours Twisted pour ce genre de chose (Python).

La beauté, c’est que si vous décidez plus tard de l’échanger vers SSH ou vers quelque chose de plus sûr que Telnet, vous pourrez le faire sans peine.

Autres conseils

Tordu, tordu, tordu!

Pour utiliser telnet, voir le package twisted.conch.telnet . Il contient des docs de l'API , mais le vrai les informations sur son utilisation proviennent de la recherche sur Google Code Search , comme ce nugget à partir de grailmud - un serveur MUD.

Pour toute ma programmation MUD, je viens de créer mes propres routines à partir des bases en utilisant les RFC.

Au cas où vous voudriez éviter certaines de mes douleurs, je les ai intégrées à une classe C # assez simple qui gère correctement Telnet. Si vous souhaitez en prendre connaissance, vous pouvez l'afficher ici .

Ce code a été copié / collé et exécuté sous Windows et sous Linux (via Mono) sur une poignée de projets distincts et fonctionne assez bien.

Il existe une interface telnet dans CPAN si vous aimez Perl. C'est assez minime, mais cela devrait faire le travail.

[modifier] libcurl est également censé pouvoir utiliser telnet, bien que je ne puisse en trouver aucun exemple.

pmc ( http://sourceforge.net/projects/perlmudclient/ ) était une tentative faire exactement cela. J'ai passé une partie de la semaine dernière à le parcourir. il utilise une ancienne version modifiée de Net :: Telnet pour effectuer son travail de connectivité.

Mon problème est que Net :: Telnet semble avoir une interface de blocage lorsqu'une ligne partielle est envoyée par le serveur, c'est-à-dire une ligne non terminée par une nouvelle ligne. Deux fonctionnalités le supportent (waitfor et son mécanisme d’invite), car presque tous les serveurs telnet ont des invites ne se terminant pas par une nouvelle ligne.

Les ILM ont souvent des "invites". qui ne sont pas standard et varient au cours du jeu; le MUD que je gère a un " votre choix: " invite comme son identifiant [ce n'est pas juste pour les noms d'utilisateur], et de nombreuses fonctionnalités de jeu présentent des invites alternatives. Je suppose donc que vous devrez garder cela à l'esprit lorsque vous rechercherez une bibliothèque Telnet multiplate-forme!

Si vous aimez C, je vous recommande vivement libtelnet . Il conservera un état interne qui analysera pour vous toute la séquence IAC et gérera la négociation des options à l'aide de méthode Q .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top