나는 약간의 텍스트 상자와 메뉴 항목 (TUI)이 필요한 루비에 작은 진흙을 쓰고있다. 클라이언트는 텔넷을 통해이 응용 프로그램에 연결합니다. NCurses를 사용하여 시도했지만 소켓 인 IO에는 어떻게 그릴 수 있는지 파악할 수 없습니다 ... 내 텍스트 상자 및 메뉴 위젯을 개발할 수있는 가능한 모든 방법이 있습니다. VT-100 ANSI 터미널 이스케이프 코드를 살펴 보았습니다. 색깔있는 텍스트를 써서 표준 텔넷 어플리케이션과 이벤트 기반의 인터페이스를 만들 수도 있습니다.ncurses를 사용하여 텔넷 인터페이스에서 어떻게 그립니다 ...?
3
A
답변
2
일반적인 ncurses 프로그램/루비 스크립트와 소켓을 파이프로 작성하는 것이 더 쉬울 것입니다.
예 : 포트
에 VI를 호스팅하는 터미널을 열고이 포트에 VI 응용 프로그램을 호스팅
mkfifo ncpipe
nc -l -p 800 0<ncpipe | vi 1>ncpipe
루트로 다음을 실행 (800) 당신의 ncurses를 프로그램과 다른 터미널 당신은 대체 할 수
telnet 127.0.0.1 800
VI를 엽니 다 .
참고 : 이것은 nc가 들어오는 연결을 하나만 처리하고 종료하기 때문에 매우 기본적인 예입니다. "socat"과 같은 다른 서버 프로그램이 필요합니다
1
NCurses는 STDOUT에 쓰도록 설계되었으므로 IO :: Socket에 쓰는 방법을 이해하지 못하기 때문에 나머지 모드는 ANSI 이스케이프 코드이므로 라인 모드에서 텔넷을 전환하도록 요청합니다 텍스트 상자 위젯 등의 개발에 도움이 될 ANSI 및 VT-100 이스케이프 코드를 사용 의지에 문자 모드 .... 다른 수정 #for 색상
http://www.faqs.org/rfcs/np.html#TELNET를 들어
http://ascii-table.com/ansi-escape-sequences-vt-100.php #합니다.
관련 문제
- 1. 텔넷 연결을 통해 ncurses를 사용할 수 있습니까?
- 2. PowerShell을 사용하여 텔넷 자동화
- 3. ncurses를 사용하여 터미널의 스크롤 백에 어떻게 추가 할 수 있습니까?
- 4. 동적으로 PHP에서의 ncurses를 사용하여 카운트를 업데이트
- 5. 텔넷 서버는 클라이언트와 어떻게 통신합니까?
- 6. CGPath를 사용하여 선을 그립니다.
- 7. 컴퓨터는 어떻게 화면을 그립니다.
- 8. JList는 어떻게 다시 그립니다?
- 9. 인터페이스에서 getter/setter를 어떻게 구현합니까?
- 10. ncurses를 제대로 후
- 11. C#에서 텔넷 서버에 어떻게 연결합니까?
- 12. 좌표를 사용하여 선을 그립니다.
- 13. OpenGL을 사용하여 구체를 그립니다.
- 14. fabric.js를 사용하여 캔버스에 텍스트를 그립니다.
- 15. 그립니다?
- 16. endwin()은 ncurses를 초기화 해제합니까?
- 17. iPhone에서 Quartz를 사용하여 점선을 그립니다.
- 18. 텔넷 서버로 텔넷 세션을 처리하는 방법
- 19. OpenGL을 사용하여 안드로이드에 원을 그립니다.
- 20. Windows 텔넷 클라이언트는 정확히 어떻게 작동합니까?
- 21. 는 ncurses를 가진 단말기 크기
- 22. 텔넷 서버
- 23. Android 텔넷 자습서
- 24. ncurses를 사용하여 char *를 여러 줄에 인쇄 하시겠습니까?
- 25. SQL 서버와의 텔넷 연결
- 26. SSH 및 텔넷 용 C# 라이브러리
- 27. 텔넷 API를 사용하여 세부 정보를 얻는 방법
- 28. C#을 사용하여 텔넷 서버에 자동 로그인
- 29. Cocos2d는 CCSprite를 사용하여 다각형을 그립니다.
- 30. OpenStreetMap을 사용하여 data.frame에서 점을 그립니다.
물론 이것은 단일 연결로만 작동합니까? – Textmode
@Textmode 그는 curses 애플리케이션을 전달할 수 있음을 보여주기 위해 예제로 사용하고 있습니다. 각 사용자에게 새 인스턴스를 제공하는 두 번째 서버 응용 프로그램을 작성할 수 있습니다. – Piccolo