qt에서의 network - write 문제.

bus710의 이미지

안녕하세요^^ 요즘 QT 네트워크를 들여다 보고 있는데 진전이 별로 없네요^^;

오브젝트 관련한 문제인 듯한데, 문의 드려도 될지 모르겠습니다.
먼저, 소스는 다음과 같습니다.

 2 #include <QtNetwork>
 3 #include "connection.h"
 4
 5 Connection::Connection(QObject *parent) : QTcpSocket(parent)
 6 {
 7 
 8 }
 9
10 void Connection::send(void)
11 {
12         write("aaa");
13 }

중요한 것은, TcpSocket으로 부터 상속을 받은 Connection 이라는 녀석이 생성되고 나서....
외부에서 connection->send();를 하고, 컴파일 완료 후 실행 시에 다음과 같은 에러가 뜬다는 것입니다.

QNativeSocketEngine::write() was not called in QAbstractSocket::ConnectedState

네.........중요한 것은, 서버 측 프로그램과 (루프백으로)연결은 잘된다는 것입니다.

저 에러 메시지는 connected state에서 write를 쓸 수 없다는 듯한데...

혹시 이에 대해서 아시는 분 계십니까???

klara의 이미지

connected state에서 쓸수 없다는 뜻이 아니라, connected state가 아닌 상태에서 write()가 호출되었다, 즉 연결되지 않은 상태에서 쓰려고 했다는 뜻입니다.

bus710의 이미지

그렇군요.
아무래도 전 영어 공부를 좀 더 해야될 것 같습니다;;

아무튼, 그렇다면.
(connection->close를 호출하지 않았다면)
한번 connect가 잘 되었다면 계속 connected가 유지되어야 하는 것 아닌가요?

일단 connect state를 받아서 살펴 보는 부분을 넣어 봐야겠네요^^
감사합니다.

akudoku.net Bob Marley - Burnin and Lootin

life is only one time