qtを使用して単純なtcpサーバーを開発しています。それで問題ありません。しかし、問題は、接続されているすべてのクライアントをリストボックスにリストしており、リストボックスから選択したクライアントからの受信データのみを表示したいのですが、最後に接続したクライアントのメッセージしか表示できないことです。これがコードです。これはコンストラクター部分です
server = new QTcpServer();
client = new QTcpSocket();
connect(server, SIGNAL(newConnection()),this, SLOT(acceptConnection()));
server->listen(QHostAddress::Any, ui->txtPort->text().toInt(bool(),10));
if(server->isListening())
{
ui->statusBar->showMessage("Server Started..");
}
else
{
ui->statusBar->showMessage("Server Not Started..");
}
connect(client,SIGNAL(disconnected()),this,SLOT(client_disconnected()));
connect(ui->listWidget,SIGNAL(clicked(QModelIndex)),this,SLOT(selected_client()));
これがacceptConnection()部分です
client = server->nextPendingConnection();
ui->listWidget->insertItem(client_count,client->peerAddress().toString());
client_count++;
これは listWidget 項目の選択項目イベントです
ui->txtRead->clear();
selected_client_index = ui->listWidget->currentIndex().row();
connect(client, SIGNAL(readyRead()),this, SLOT(startRead()));
そして最後に startRead() 部分
char buffer[1024] = {0};
client->read(buffer, client->bytesAvailable());
qDebug() << buffer;
ui->txtRead->insertPlainText(buffer);
特定のクライアントを選択してそのメッセージを表示するにはどうすればよいですか? 前もって感謝します。