
C++客户端开发
爱学习的人啊
这个作者很懒,什么都没留下…
展开
-
Windows网络编程-I/O模式
首先说明什么是Windows套接字模式.其分为两类:阻塞模式/非阻塞模式.阻塞模式:I/O操作完成前执行操作的WinSock调用会一直等候下去,不会立即返回到程序中.非阻塞模式:WinSock函数无论如何都会立即返回.对阻塞套接字他的一个缺点在于,应用程序很难同时通过多个建好连接的套接字通信,使用前述的方案,可对应用程序进行修改,令其为连接好的每个套接字都分配一个读线程,以及一个数据处理...原创 2020-03-03 20:31:58 · 441 阅读 · 0 评论 -
windows网络编程学习
1.在编译采用WINSOCK2.h的应用程序时,需链接到WS2_32.LIB库.#pragma comment(lib,"ws2_32.lib")通过WSAStartup函数加载WinSock库int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData)/*wVersionRequested 参数用于指定准备加载的WinSock...原创 2020-02-29 18:00:21 · 363 阅读 · 0 评论 -
QT5 多线程
widget.hclass Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = nullptr); ~Widget();private slots: void on_pushButtonstart_clicked(); void dealSigna...原创 2019-11-30 12:13:42 · 281 阅读 · 0 评论 -
QT5 服务器和客户端之间进行文件传输
服务器端,(选择,发送)#include "widget.h"#include "ui_widget.h"#include <QFileDialog>#include<QFileInfo>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui-&g...原创 2019-11-28 12:32:50 · 1730 阅读 · 0 评论 -
QT5 UDP通信
这里只放了一端的代码,其实双方的是一样现在.h文件中定义udpSocket指针变量#include "udpwidget.h"#include "ui_udpwidget.h"#include<QHostAddress>UDPWidget::UDPWidget(QWidget *parent) : QWidget(parent), ui(new Ui::UDP...原创 2019-11-26 12:14:18 · 963 阅读 · 0 评论 -
Qt5 TCP通信
服务器端 //服务器端需要两种套接字 QTcpServer *tcpServer;//监听套接字 QTcpSocket *tcpSocket;//通信套接字Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); s...原创 2019-11-25 21:05:05 · 269 阅读 · 0 评论 -
Qt添加资源文件无法显示资源文件问题
在添加资源文件以后需要再qmake一遍,再run才行。。。亲身经历!!!void Widget::paintEvent(QPaintEvent *){ gridw = width()/10; gridh = height()/10; startx = gridw; starty = gridh; QPainter p(this); p.dra...原创 2019-11-21 20:59:09 · 3731 阅读 · 0 评论 -
Qt5学习 绘图设备和文件系统
绘图设备:QPixmap:针对屏幕进行优化了,和平台相关,不能对图片进行修改QImage:和平台无关,可以对图片进行修改,在线程中绘图QPicture:保存绘图的状态(二进制文件)文件读写:void Widget::on_readButton_clicked(){ QString path = QFileDialog::getOpenFileName(this,"open","...原创 2019-11-17 17:31:13 · 138 阅读 · 0 评论 -
Qt5学习 事件过滤器
事件过滤器和被安装过滤器的组件必须在同一线程,否则,过滤器将不起作用。另外,如果在安装过滤器之后,这两个组件到了不同的线程,那么,只有等到二者重新回到同一线程的时候过滤器才会有效。//在myWidget.h文件中保护类型下 bool eventFilter(QObject *obj,QEvent *e);//在myWidget.cpp//在构造函数中安装过滤器ui->label-&...原创 2019-11-13 22:30:42 · 145 阅读 · 0 评论 -
Qt5学习 事件的接受和忽略
信号的接收和忽略一般用在点击窗口的关闭按钮时,弹出问题对话框,默认是Yes和No,Yes就接收No就忽略当信号忽略时传递给父组件(不是父类)void myWidget::closeEvent(QCloseEvent *e){ int ret=QMessageBox::question(this,"question","是否关闭"); if(ret == QMessageBox::...原创 2019-11-13 17:11:18 · 189 阅读 · 0 评论 -
Qt学习 文本框输入有提示
# include <QCompleter># include <QStringList>QStringList list;list<<"hello"<<"How are you"<<" hehe";//相当于cinQCompleter *com = new QCompleter(list,this);com->setCa...原创 2019-11-13 11:09:56 · 1470 阅读 · 0 评论 -
Qt学习 模态和非模态对话框创建和标准对话框、文件对话框
QMenuBar *mBar = menuBar();setMenuBar(mBar);//设定菜单栏QMenu *menu = mBar->addMenu("对话框");QAction *p1=menu->addAction("模态对话框");connect(p1,&QAction::triggered, [=]() { Q...原创 2019-11-12 11:37:18 · 219 阅读 · 0 评论 -
Qt学习 Lamda表达式和信号功能
QPushButton *b=new QPushButton(this) //this是指定这个类为父对象用一般信号和槽函数:connect(b, &QPushButton::released,this,&myWidght::close)在使用Lamda表达式时,需要在项目文件.pro中加上CONFIG += C++11用Lamda表达式来作为槽函数:connec...原创 2019-11-11 10:38:29 · 446 阅读 · 1 评论