본문 바로가기
무모한 도전-주식 인공지능 만들기

QProcess에서 communication을 하기 위한 도전 part2

by 인터넷떠돌이 2019. 5. 16.
반응형

안녕하세요?

 

어제 포스팅에서는 이 작업의 진행을 위해서 중간까지 갔는 것을 올렸다면, 이번 포스팅에서는 남은 작업의 절반을 보여드리기 위해서 한번 포스팅을 올려 보고자 합니다.

 

어제 포스팅에서 끝마친 부분에서 이어지는 부분입니다. 여기서는 일단 connect라는 버튼을 누르기는 했습니다만, 문제는 이 버튼이 실행하고 나서는 전혀 변한 것이 없다는 것 입니다.

 

다음으로는 위 스크린샷에서 보면 알 수 있듯이, 혹시나 connectToHost라는 메서드에서 이상이 생긴 것 때문에 이런 일이 벌어진 것이 아닌가 해서, 한번 type이 제대로 진행이 되는지를 보고자 합니다.

 

그런데 역시나 라고 해야 할까요? 일단 위 스크린샷에서 보이는 것처럼 타입이 None이라서 제대로 진행이 되지 않는 것을 볼 수 있는데, 왠 에러 메세지가 뜨는 것을 볼 수 있습니다.

 

 

그래서 이번에는 위 스크린샷처럼 waitForConnected라는 메서드를 사용하도록 했습니다. 여기서는 일단 천밀리초라는 1초 기다리라고 합니다.

 

그런데 이렇게 했더니, 이번에는 아예 에러 메세지도 뜨지 않고.............. 아무것도 되지 않는 것을 볼 수 있습니다. 일단 파이참의 콘솔 출력만 봐서는 에러는 없어진 것 같지만.....

 

그래서 다음에는 서버역할을 하는 곳으로 가서, 위 스크린샷에서 보면 알 수 있듯이 연결을 기다리라는 명령어를 붙여서 주도록 합니다.

 

그리고 나서 listen에 제대로 무언가가 들어오지 않았다면, 그냥 Error이 뜨도록 명령어를 바꾸어준 다음에, 한번 작업을 이어서 진행해 보도록 합니다.

 

이번에는 무언가 달라 지겠지 하면서 한번 실행을 시켜 보았습니다만, 이번에도 여전히 달라진 것이 없다는 것을 확인할 수 있었습니다.

 

그래서 어떤 종류의 에러가 나온 것인지-진짜로 connection refused인 에러가 발생한 것이 맞는지 알아보기 위해서 QTcpSocket.errorString()메서드를 사용해 보도록 합니다.

 

그 결과 마지막으로 위 스크린샷에서 보이는 것처럼 연결이 거부되었다는 것을 확인할 수 있었습니다. 어째서 이런 에러가 나왔는지 찾아봐야 하지만, 일단 의심이 가는 것은 먼저 QProcess가 실행이 되고 나서 QTcpSocket이 들어가야 하는데, 그러지 못했는 것이 아닌가 합니다.

반응형