在c++中我们开发中有时用使用域名地址获取ip,对于初学者来说网络编程确实是一个比较头疼的事情,而且获取ip是最基础但又不是那么容易的事情,我刚好学习到了这一块,通过查资料和不断的尝试,封闭出了一个函数进行ip地址的获取。
QHostInfo 类:查询与特定主机名相关联的主机的IP地址,或者与一个IP地址相关联的主机名。 QHostAddress 类:提供一个IP地址,可提供独立于平台和协议的方式来保存 IPv4和IPv6 地址。 QNetworkInterface 类:负责提供主机IP地址和网络接口的列表,表示了当前程序正在运行时与主机绑定的一个网络接口。 QNetworkAddressEntry 类:存储了一个网络接口所支持的一个IP地址,同时还有与之相关的子网掩码和广播地址。
先讲一下对QT动态链接库的调用方法,主要包括: 1、显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法 2、显示链接DLL,调用DLL中类对象、成员函数。(通过对象即可实现类成员函数的调用) ①用虚函数表的方法,这也是COM使用的方法,利用Qt的QLibrary技术调用; ②用GetProcAddress直接调用。 ③用Qt的QPluginLoader类直接调用生成的DLL插件类对象 3、隐式链接DLL:也是采用Qt的Qlibrary方法 关于这种三种方法,下面详细叙
QTableView类非常的方便让我们去操作数据库,直接像excel中操作数据一样,比较灵活,在以后的开发中会用的比较广泛。
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来
qt对于操作数据库已经封装的非常完美,用起来非常简单,没有多大的难度,只需要引入相应的类库即可,对于增删查改的话只需要执行sql语句就行了,里面会介绍多种操作的方法。
//先发送文件头信息 文件名##文件大小 QString head = QString("%1##%2").arg(fileName).arg(fileSize); //发送头部信息 qint64 len = tcpSocket->write(head.toUtf8()); //如果len大于0,则头部信息发送成功 if(len > 0){ //发送真正 的文件信息 //防止tcp黏包信息 //需要通过定时器延时20
//启动 void Widget::on_buttonStart_clicked() { //启动定时器 //设置时间间隔100ms //每隔100毫秒,定时器myTimer自动触发timeout() //判断如果定时器没有启动,则启动 if(myTimer->isActive()){ return; } myTimer->start(10); } //停止 void Widget::on_buttonStop_clicked() {
//先读取对方发送的内容 char buf[1024] = {0}; //定义一个对象获取对方信息 QHostAddress cliAddr; quint16 port; //对方端口 qint64 len = udpSocket->readDatagram(buf,sizeof(buf), &cliAddr, &port); if(len > 0){ //字符串格式化 QString str = QString("[%1:%
setWindowTitle("服务器:8899"); //监听套接字,指定父对象,让其自动回收空间 this->tcpServer = new QTcpServer(this); //监听客户端的请求 this->tcpServer->listen(QHostAddress::Any,8899); connect(this->tcpServer, &QTcpServer::newConnection, [=](){ //取出建立好链接的套接字