1
나는 foreach는 루프 라인으로 서버 라인에 클라이언트에서 문자열을 보내려고. 문자열에서 "\ n"을 제거하면 서버는 하나의 큰 문자열로 병합 된 문자열 묶음을받습니다. 나는 "\ n"을 덧붙여서 데이터를 문자열로 나눌 것이라고 생각했다.이 문자열은 readLine()
으로 읽을 수있다. 나는 무엇을 놓쳤는가?QTcpSocket을 통해 문자열 줄을 보내고 읽는 방법?</p> <pre><code>foreach(QString s, stringlist) client.sendMessage(s); </code></pre> <p>그러나 클라이언트는 첫 번째 문자열을받습니다
내 클라이언트
class cClient:public QTcpSocket
{
public:
void sendMessage(QString text)
{
text = text + "\n";
write(text.toUtf8());
}
};
및 서버 : 당신은 아마 한 번에 두 개 이상의 라인을 수신하지만 첫 번째를 읽고
class pServer:public QTcpServer
{
Q_OBJECT
public:
pServer()
{
connect(this,SIGNAL(newConnection()),SLOT(slotNewConnection()));
}
public slots:
void slotNewConnection()
{
QTcpSocket* c = nextPendingConnection();
connect(c,SIGNAL(readyRead()),this, SLOT(readData()));
}
void readData()
{
QTcpSocket* conn = qobject_cast<QTcpSocket*>(sender());
QString data = QString(conn->readLine());
}
};
감사합니다. 그게 제가 놓친 것입니다. 이제 모든 것이 작동합니다! – lena