2008-11-26 10 views
3

MUD client 응용 프로그램을 시작하려고합니다.이 응용 프로그램은 텔넷 서버에서 호스팅되는 MUD에 연결합니다. 중요한 것은 모든 OS에서 고통없이 효율적으로 실행된다는 것입니다. 그 요구 사항을 제외하고, 나는 어떤 언어로도 정말로 팔리지는 않았다.크로스 OS 텔넷 클라이언트에 텔넷 lib 및 언어 선택?

그래서 자유롭게 사용할 수있는 텔넷 클라이언트 라이브러리를 찾고 있는데, 응용 프로그램을 기반으로 할 수 있으므로 프로토콜의 세부 사항을 너무 많이 다룰 필요가 없습니다.

답변

7

나는 이런 종류의 일 (파이썬)에 대해 항상 Twisted을 고려할 것이다.

나중에 SSH 나 텔넷보다 더 안전한 것으로 바꾸기로 결정하면 약간의 고통을 느낄 수 있습니다.

+0

나는 Twisted와 함께 Telnet을 사용하는 좋은 예제를 찾을 수 없습니다. – Ray

+0

다른 Twisted "프로토콜"을 사용하는 것과 같습니다. 예제 페이지 (예 : http : // twistedmatrix)를 봐야합니다.co.kr/projects/core/documentation/howto/clients.html을 참조하십시오. 사용할 프로토콜은 twisted.conch.telnet.Telnet (EchoProtocol 아님)입니다. –

+0

여기 API : http://twistedmatrix.com/documents/8.1.0/api/twisted.conch.telnet.html –

2

Perl을 좋아한다면 CPAN에 텔넷 인터페이스가 있습니다. 그것은 아주 적지 만 일을 끝내야합니다.

[편집] libcurl도 예제를 찾을 수는 없지만 텔넷을 수행 할 수 있어야합니다.

2

내 머드 프로그래밍의 경우, RFC를 사용하여 처음부터 내 자신의 루틴을 만들었습니다.

내 고통을 피하기 위해 Telnet을 올바르게 처리하는 매우 간단한 C# 클래스로 마무리했습니다. 당신이 그것을 정독하고 싶다면, 그것을 here으로 볼 수 있습니다.

이 코드는 복사 및 붙여 넣기되어 Windows 및 Linux (Mono를 통해)에서 몇 개의 개별 프로젝트로 실행되어 매우 효과적입니다.

+0

고맙지 만, 조금 더 좋아할만한 것을 원합니다. – Ray

0

pmc (http://sourceforge.net/projects/perlmudclient/)가이 작업을 정확하게 수행하기위한 시도였습니다. 지난 주 중 일부를 보냈습니다. Net :: Telnet의 이전 버전을 사용하여 연결 작업을 수행합니다.

제 문제는 Net :: Telnet이 부분 라인이 서버에 의해 전송 될 때 차단 인터페이스가있는 것입니다. 즉 줄 바꿈에 의해 종료되지 않는 라인입니다. 거의 모든 telnet 서버에는 줄 바꿈이 끝나지 않은 프롬프트가 있기 때문에이 기능을 지원하는 두 가지 기능 (waitfor 및 프롬프트 메커니즘)이 있습니다.

머드에는 종종 비표준이며 게임 진행 과정에 따라 달라지는 "프롬프트"가 있습니다. MUD I admin에는 로그인으로 [Your choice :] 프롬프트가 있습니다. [사용자 이름에만 해당되는 것이 아닙니다] 많은 게임 기능이 대체 프롬프트를 제공합니다. 그래서 당신은 크로스 플랫폼 Telnet 라이브러리를 찾을 때 이것을 염두에 두어야한다고 생각합니다!

0

C가 마음에 드시면 libtelnet을 모든 IAC 시퀀스를 사용자에게 구문 분석하고 Q method을 사용하여 옵션 협상을 처리하는 내부 상태를 유지합니다.