
明显的当新连接到达时,newConnection是会被emit的,然后使用QTcpServer::nextPendingConnection获得一个可用的tcpsocket对象实例。如果你需要将此实例用于另外的线程中,需要传递socket handle 也就是重载 QTcpServer::incomingConnection ( int socketDescriptor ) [virtual protected]保护方法来传递一个socket句柄,在目标线程中创建一个tcpsocket实例。
可能是你的代码的继承或者作用域有些问题,qt的connect的Qt::AutoConnection 链接类型并不如宣称的那么好用,有时候会在不报错的情况下失去作用。1、电脑自身的防火墙问题,关闭防火墙,建立最简单的demo,不成功。
2、程序有问题,运行QT自带的demo也不成功,感觉不科学。代理可能出问题。发现好像设置了IE代理,解决方案加入QNetworkProxyFactorysetUseSystemConfigurationfalse。问题完美解决。QT做TCP广播IP方法如下所示:
1、在pro文件中加入network模块QT+=network
2、在你的h里面添加QTcpSocket
3、连接服务器地址和端口号tcpSocket->connectToHost("19216811",8000);
4、监听连接成功的信号SGINAL-->connected()
5、给socket填写你想发送的数据,封装成QByteArray这个用不着QT。QT是C++写的,C++兼容C。我这倒是有C语言写的。你要的话把邮箱给我。我发给你。发给你的东西有很多其他的代码。有聊天程序,有传文件的程序(模拟scp)、还有shell。
你说 用getlp函数 得到的ip不对,可能是你选的连接类型是本地连接。用socket的时候你要用 AF_INET 而不是 AF_UNIX。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)