QT 网络编程问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT 网络编程问题相关的知识,希望对你有一定的参考价值。

Qt下TCP网络编程时,假设主界面类里面只定义一个侦听套接字和和一个读写套接字。
那么读写套接字在面对多个客户端同时登陆的时候,Qt是重复利用一个读写套接字,还是会生成新的进程产生不同的读写套接字?

先做一个QTcpServer作为监听socket,监听后如果出发newConnection信号,说明有连接进来。
然后通过nextPendingConnection()可以得到一个QTcpSocket,这就是用来和客户端进行通信用的套接字。
监听socket仍然可以继续监听。QTcpSocket可以用来和客户端通信。
如果通信负荷比较大,可以把每个客户端socket放入单独的线程(或进程)进行处理。负荷不大,则不需要。
参考技术A 哈哈 同是qt菜鸟 。因该是产生新的进程。一个客户端进程对应一个服务器端进程。

Qt编程问题.

是这样,我自己写了一个类MyFrame继承于QFrame类,和类MenuWidget继承了QWidget.
我希望的结果是:我在MyFrame的构造函数里面写
MenuWidget *menuWidget = new MenuWidget(this);
直接就创建了一个MyFrame类的对象的子对象.
但是我不知道MenuWidget这个类的构造函数该怎么写才能达到这个目的.不知道参数怎么设置.
我看到像QPushButton的构造函数是这样
QPushButton::QPushButton ( QWidget * parent = 0 )
Constructs a push button with no text and a parent.
于是我也这样写:
public:
MenuWidget(QWidget *parent = 0);
但是编译的时候
出现错误
error: invalid conversion from ‘QWidget*’ to ‘MyFrame*’

MenuWidget *menuWidget = new MenuWidget(this);
这里的this是指MyFrame
而在
MenuWidget(QWidget *parent = 0);
定义的参数是QWidget*,所以说会报错。参数类型整一下吧
参考技术A 你的描述有问题
MenuWidget *menuWidget = new MenuWidget(this);
这不是创建MenuWidget 的对象吗?你怎么说创建MyFrame
你这个问题属于C++基础的问题 建议你还是好好学学C++吧
.追问

不是,是创建了一个MenuWidget类的对象,这个对象是MyFrame的对象的子对象.

追答

你把你的继承关系写下啊 我感觉继承关系太乱

以上是关于QT 网络编程问题的主要内容,如果未能解决你的问题,请参考以下文章

QT 编程,关于QTableWidgetItem的问题

QT 网络编程问题

请教一个qt与Matlab混合编程的问题

QT的UDP通信编程问题

QT tcp 编程 【在线等】

Qt Socket网络编程