Domanda

Sto cercando di avviare un'applicazione client MUD , che si collega a un MUD ospitato su un server Telnet. L'unica cosa importante per me è che funziona in modo indolore ed efficiente su qualsiasi sistema operativo. A parte questo requisito, non sono realmente venduto in nessuna lingua.

Quindi sto cercando una libreria client telnet liberamente disponibile su cui posso basare la mia applicazione, quindi non devo occuparmi troppo dei dettagli del protocollo.

È stato utile?

Soluzione

Considererei sempre Twisted per questo tipo di cose (Python).

Il bello è che se in seguito decidi di scambiarlo con SSH o qualcosa di più sicuro di telnet, puoi farlo con poco dolore.

Altri suggerimenti

Contorto, contorto, contorto!

Per usare telnet, vedere il pacchetto twisted.conch.telnet . Ha alcuni documenti API spartani le informazioni su come utilizzarlo provengono da cercando in Ricerca codice Google , come questa pepita da grailmud - un server MUD.

Per tutta la mia programmazione MUD, ho appena creato le mie routine da zero utilizzando gli RFC.

Nel caso tu voglia evitare un po 'del mio dolore, l'ho avvolto in una classe C # abbastanza semplice che gestisce correttamente Telnet. Nel caso in cui desideri esaminarlo, puoi visualizzarlo qui .

Questo codice è stato copiato / incollato ed eseguito su Windows e Linux (tramite Mono) su una manciata di progetti separati e funziona abbastanza bene.

Esiste un'interfaccia telnet in CPAN se ti piace Perl. È piuttosto minimale, ma dovrebbe portare a termine il lavoro.

[modifica] Anche libcurl dovrebbe essere in grado di fare telnet, sebbene non ne abbia trovato alcun esempio.

pmc ( http://sourceforge.net/projects/perlmudclient/ ) è stato un tentativo per fare esattamente questo. Ho trascorso un po 'dell'ultima settimana ad affrontarlo; utilizza una versione modificata precedente di Net :: Telnet per fare il suo lavoro di connettività.

Il mio problema è che Net :: Telnet sembra avere un'interfaccia di blocco quando una linea parziale viene inviata dal server, cioè una linea non terminata da una nuova riga. Ha due funzionalità che supportano questo (waitfor e il suo meccanismo di prompt), poiché quasi tutti i server telnet hanno prompt che non sono terminati da newline.

I MUD hanno spesso " prompt " che non sono standard e variano nel corso del gioco; il MUD su cui ho l'amministratore ha un " La tua scelta: " come login [non è solo per i nomi utente] e molte funzionalità di gioco presentano prompt alternativi. Quindi sospetto che dovrai tenerlo presente quando cerchi una libreria Telnet multipiattaforma!

Se ti piace C, consiglio vivamente libtelnet . Manterrà uno stato interno che esegue l'analisi di tutta la sequenza IAC e gestisce la negoziazione delle opzioni utilizzando metodo Q .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top