QTcpSocketを使用すると非常に簡単です。あなたが行ったように始まる...
void MainWindow::connectTcp()
{
QByteArray data; // <-- fill with data
_pSocket = new QTcpSocket(this); // <-- needs to be a member variable: QTcpSocket * _pSocket;
connect(_pSocket, SIGNAL(readyRead()), SLOT(readTcpData()));
_pSocket->connectToHost("127.0.0.1", 9000);
if(_pSocket->waitForConnected()) {
_pSocket->write(data);
}
}
void MainWindow::readTcpData()
{
QByteArray data = pSocket->readAll();
}
がTcpSocketから読み込みを行うための複数の伝送、すなわち内のデータを受け取ることができること、しかし、注意してください。サーバーから文字列 "123456"が送信されると、 "123"と "456"が返されます。送信が完了したかどうかを確認するのはあなたの責任です。残念ながら、これはほとんどの場合、あなたのクラスはステートフルになります。クラスは、それがすでに開始されているかどうか、そして完了しているかどうかを伝える必要があります。これまでのところ、私はそれについてエレガントな方法を考え出していない。
多くの義務がロビン、あなたは、データを受信するためのいくつかのコードを提供してもらえますか? –
私はそれに応じて私の答えを編集しました。 – Robin
ありがとうございます! –