QTcpServer中的incomingConnection函数不执行
来源:互联网 发布:松井珠理奈 知乎 编辑:程序博客网 时间:2024/06/07 04:55
之前一个QT socket程序在升级系统后,突然没办法正常工作了。用socket client测试程序,能够连接上tcp server。但是QTcpServer中的incomingConnection函数没有被触发执行。同样的代码在debian7上和windows上都可以执行,但是在debain8就不能正常工作。后来发现,虚函数的incomingConnection的函数参数改变了,有void TripServer::incomingConnection(int socketId) 变成了void TripServer::incomingConnection(qintptr socketId)。参数类型不同,所以函数定义也就不同了。将参数类型有int改成qaintptr就好了。好贱的问题呀。附上server代码
#include "chat_server.h"#include "my_socket.h"#include <QHostAddress>ChatServer::ChatServer( QObject *parent /* = NULL */ ) : QTcpServer( parent ){ _mysockets.empty();}ChatServer::~ChatServer(){ qDeleteAll( _mysockets ); _mysockets.clear();}void ChatServer::Run( quint16 port ){ if( !this->listen(QHostAddress::Any, port) ) printf( "ChatServer listen failed !" );}void ChatServer::sendData(QString string){ printf( "client data to all client!\n" ); QList<MySocket*>::iterator iter; for( iter = _mysockets.begin(); iter != _mysockets.end(); iter++ ) { if((*iter)->isOpen()) { (*iter)->write(qPrintable(string),string.length()); } }}void ChatServer::sendData(QByteArray string){ printf( "client data to all client!\n" ); QList<MySocket*>::iterator iter; for( iter = _mysockets.begin(); iter != _mysockets.end(); iter++ ) { if((*iter)->isOpen()) { (*iter)->write(string,string.length()); } }}/*void ChatServer::incomingConnection( int handle )*///修改之前void ChatServer::incomingConnection( qintptr handle )//修改之后{ printf( "incomingConnection(): %d !\n", handle ); MySocket *mysocket = new MySocket( this ); mysocket->setServer(this); mysocket->setSocketDescriptor( handle ); connect( mysocket, SIGNAL(disconnected()), this, SLOT(clientDisconnected()) ); _mysockets.append( mysocket );}void ChatServer::clientDisconnected(){ printf( "client disconnected !\n" ); QList<MySocket*>::iterator iter; for( iter = _mysockets.begin(); iter != _mysockets.end(); iter++ ) { if( -1 == (*iter)->socketDescriptor() ) { _mysockets.erase( iter ); return; } }}
0 0
- QTcpServer中的incomingConnection函数不执行
- jQuery中的函数不执行
- QTcpServer的listen函数
- QTcpServer
- jquery ajax success中的函数不执行的原因
- qt4中的网络通信network, QTCPServer --- QTCPSocket
- javascript onclick 函数不执行
- aspx中的Page_Load不执行
- jsp文件中引入js文件,文件中的函数失效不执行
- WebBrowser执行网页中的函数
- python中的交互执行函数
- Python中的字符串执行函数
- js中的立即执行函数
- js中的立即执行函数
- javascript中的立即执行函数
- JS中的立即执行函数
- js 中的立即执行函数
- JavaScript中的立即执行函数
- nio详解
- jar包是什么?
- 一个服务器跑多个tomcat的设置
- HAL库-STM32F4 外部中断-延时
- 【模板】图的双联通分支 ,tarjan算法
- QTcpServer中的incomingConnection函数不执行
- LeetCode学习笔记[3]:Longest Substring Without Repeating Characters
- 硬币找零
- 思维导图之《一位股票投资家的良知:我为何放弃技术分析》
- 动态规划 - 计算二项式系统 ---MATLAB代码
- java class Loader
- Java基础串理
- java回调 -- 别再让我犯糊涂
- android中listview显示传感器数据