Qt·多线程服务器中,如何主动close线程中的socket套接字

aicamel 2018-08-22 09:25:35
run()函数如下:
void ServerThread::run()
{
mySocket = new MyTcpSocket(socketDescriptor,0);
//绑定套接字标识符
if ( !mySocket->setSocketDescriptor(socketDescriptor) ) {
emit error(mySocket->error()); //将错误信息发送出去
return ;
}
threadStarted();
connect(mySocket, SIGNAL(disconnected()), this, SLOT(disconnectToHost()));
//直接将套接字接收到的数据发送出去
connect(mySocket, SIGNAL(receiveData(QString, QByteArray)), this, SLOT(dataProcessing(QString, QByteArray)),Qt::BlockingQueuedConnection);

connect(this, SIGNAL(sendData(QByteArray, int)), mySocket, SLOT(sendMessage(QByteArray,int)));
exec();

}
...全文
636 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aicamel 2018-08-23
  • 打赏
  • 举报
回复
引用 1 楼 zhao3132453 的回复:
disconnectFromHost
从哪里调用这个方法?我现在不知道的是通过什么样的方式来关闭它
半雨微凉丶 2018-08-23
  • 打赏
  • 举报
回复
disconnectFromHost
aicamel 2018-08-23
  • 打赏
  • 举报
回复
换了多线程的写法,问题解决了。
如果有人也遇到类似的问题可以参考以下两篇博客
https://blog.csdn.net/hustyangju/article/details/9491639
https://blog.csdn.net/dbzhang800/article/details/6554104

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧