程序(相关
部分):
Server::Server(
QObject *parent)
: QTcpServer(parent)
{
connect(this, SIGNAL(newConnection()),
this, SLOT(addSocketToList()));
}
void Server::addSocketToList()
{
qDebug() << list.length();
//打印QList<QTcpSocket *>的长度,开始为0 list.append(nextPendingConnection());
//将新来的Socket添加到链表 qDebug() << list.length();
//长度增加一个,为1 QTcpSocket *socketFromList = list.at(0);
//从链表中取出Socket socketFromList->write("abc");
//这步出现段错,只要操作socketFromList就段错误 socketFromList->waitForBytesWritten();
}
备注:Server类继承QTcpServer。结果:
难道说nextPendingConnection返回的对象指针不能在QTcpServer对象中使用? 其实我就是做一个聊天室的程序,,我把客户A的内容发给服务器,服务器发给
其他客户端,比如B、C、D……(都在
线程里),一两天都没想到办法,我好不容易网上看到有人把到来socket保存的
QList中,然后一个个取出,才通过它们发到对应的客户端,可以当我write的时候就段错误,我真不知道什么原因(或者大家是怎么实现将客户A的聊天内容发给其他客户端(线程内))?