2010-08-05 12 views
3

나는 파이썬에서 서버를 만들고있다. (그게 무관하다.)하지만 텔넷 연결을 받아들이고 라인 편집 기능 (tabcompletion, emacs/vi- 모드 등) 및 세션 당 기록. 텔넷 세션을 성공적으로 만들었으며, 회선 모드를 비활성화하고 서버 에코를 활성화했습니다.파이썬 라인 편집 텔넷 서버

필자의 초기 생각은 readline을 사용했지만 python readline 모듈은 stdin에서 단일 세션에서만 작동하는 것 같습니다. 그리고 그것이 작동하는 것처럼 보이는 기본 readline 라이브러리를 검사합니다.

그러나 내가하고 싶은 것은 각 클라이언트에 대해 인스턴스 (원하는 경우 상태라고 부름)를 만들고 문자 (바이트)가 상태에 대한 피드로 수신되기 때문입니다. 일단 완전한 라인이 생성되면, 서버는 그것을 파싱 할 수 있습니다.

내 질문에 이런 종류의 일을 처리하는 라이브러리가 있다면 심지어 C 라이브러리로도 충분할 것입니다.

편집 : 명확히하는 등

+0

telnetlib해야합니다. 당신이 지금까지 가지고있는 것과 그것을 할 수있는 것이 무엇인지 정확히 설명해 주시겠습니까? – Kylotan

+0

서버가 제공하는 기능에 액세스하는 명령 줄 인터페이스를 제공하는 텔넷 연결을 서버가 허용하도록합니다. 청취 소켓을 추가했고 각 연결마다 텔넷 문자 모드를 사용했습니다. 이것은 내가 붙어있는 곳이다. (예를 들어 설정을 변경하고 웹 루트를 탐색 할 수있는 텔넷 액세스를 제공하는 웹 서버가 있다고 가정하면 텔넷 부분은 애드온이 될 것입니다. 서버의 기능은 무의미합니다.) – ext

답변

1

는 아마도 cmd 라이브러리가 될 수있다, 나는 완전한 기능의 서버를 이미 가지고 있지만 정보를 얻을, 다시 구성에 추가 할 때 나는 텔넷 인터페이스를 원하는 관심/도움?

+0

단일 세션에서만 작동하며 readline을 사용합니다. 각 세션마다 상태를 저장하여 서로 독립적으로 상호 작용할 수있는 무언가가 필요합니다. – ext

+0

링크 된 페이지가 언급 했으므로 입력 수단을 재정 의하여 readline이 아닌 다른 것을 사용할 수 있습니다. 세션에 관해서는 여러 개의 Cmd 개체를 만들 수 있다고 생각합니다. – Amber

2

TELNET 부분이 정렬되어있는 것처럼 들리 네요. 이제 BASH, KSH 등과 같은 쉘에서 일반적으로 발견되는 기능을 제공하고 싶습니다. 직접 시도하지 않았지만 모양은 shython : "a bash와 python의 기능을 모두 갖춘 다목적 쉘 "