Qt套接字写入分段故障
Qt socket write segmentation fault
我已经创建了一个基本的多线程TCP服务器,我想将数据发送到所有连接的客户端。我已经将服务器类的信号writing(QByteArray)
连接到了套接字线程的插槽writeToSocket(QByteArray)
,但当我试图通过发出上述信号来写入该套接字时,我会出现分段错误。这就像我不能访问任何套接字对象的(线程的属性)方法一样。
我的简化代码:
void MyServer::incomingConnection(int handle)
{
ConnectionThread *thread = new ConnectionThread(handle, this);
connect(this, SIGNAL(writing(QByteArray)), thread, SLOT(writeToSocket(QByteArray)));
// Some more code necessary for thread to work
}
void RoleNetServer::WriteToAll(QByteArray data)
{
emit writing("test");
}
然后,在线程的源文件中:
void ConnectionThread::writeToSocket(QByteArray data) // a slot
{
this->socket->write(data);
}
只是个想法。我可能错了。
在C++中,新建/删除不是线程安全的。不确定C++0x是否仍然如此。我在pthreads中遇到了这个问题。
如果使用新分配的内存,即使语法看起来正确,也会引发分段错误。如果可能的话,尝试在线程/线程函数中分配它。
希望这对你有帮助。
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数
- C++分段故障BST