2011-05-12 4 views
1

프로젝트를 수행 중입니다. 패킷 스니핑이라고하는데, 좋아하는 etherial.it을 캡처하여 모든 패킷을 호스트에 표시합니다. 이 프로젝트를 개발하기 위해 리눅스 플랫폼에서 일하고 그거야 날 난 내 GUI에 그 패킷 정보를 리디렉션 원 콘솔의 패킷 정보를 표시 할리눅스 플랫폼에서 qt로 콘솔 출력을 GUI로 리디렉션하는 방법

  1. 오전 수있는 다음과 같은 문제가 발생하고 가이드 개발 QT를 사용하고 있습니다. 그것이 가능합니다.
+0

코딩중인 프로그램이 패킷 스니핑을 수행하고 있습니까? 아니면 외부 프로그램입니까? – leegent

답변

1

정확하지 않아서 미안하지만 내 앞에 참조 자료가 없습니다. 나는 최근에 이것을 정확히했다. QProcess를 사용하여 패킷 스니퍼를 시작한 다음 ReadyRead (?) 신호를 처리 할 슬롯을 만듭니다. 그런 다음 ReadyRead 슬롯은 프로세스에서 stdout 및 stderr를 읽고 GUI에 출력을 넣을 수 있습니다.

+0

감사합니다 mattnz..its 지금 일하고 .. – rajesh

0

외부 프로그램의 표준 출력을 Qt 프로그램에 파이프하는 경우 QTextStream을 사용하여 표준 입력에 연결할 수 있습니다 (docs 참조).

거기에서 QTextStream 개체를 프로그램에 전달하고 QTextStream :: readLine()을 사용하여 입력 내용을 추출하여 QTextEdit과 같은 행에 추가 할 수 있습니다.

이것이 작동하는지 모르겠지만 QTextStream :: device()에서 QIODevice를 가져 와서 QIODevice :: readyRead() 신호를 자신의 슬롯에 연결하여 모든 비동기를 만들 수도 있습니다.

+0

감사합니다 leegent ... 이제 콘솔에서 넣어 얻을 수 있어요 .. 근래 두 가지 방법을 모두 사용했습니다 ... – rajesh

+0

당신은 올바른 답변으로 이러한 답변 중 하나를 표시해야합니다 :) – leegent

관련 문제