在工作中总有特殊的需求 比如用客户端框架qt构建websocket服务器 使用QWebsocketserver监听 nextPendingConnection得到的websocket无法跨线程使用 在QTcpServer中我们可以重写inComming函数得到socket描述符传入多线程中再使用QTcpSocket的setSocketDescript函数解决问题 然而QWebSocketServer并没有此函数。 所以使用QWebSocketServer的handleConnection升级QTcpSocket 但handleConnection返回值为void 如何获得转换后的websocket?查看qt源码 再追踪handshakeReceived得 addPendingConnection为添加构建的websocket到 nextPendingConnection拿取的队列 可以看到添加队列以后还会发出newConnection()信号 所以只要再handleConnection升级QTcpSocket语句之后 链接调用此函数的QWebSocketServer对象的newConnections信号 再通过nextPendingConnection函数拿到