0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术Linux主板Qt网络应用程序简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 09:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Linux中的网络编程是通过socket接口来进行的。我们常说的socket接口是一种特殊的I/O,它也是一种文件描述符,关于socket编程的应用可以参考英创公司光盘中使用必读的相关内容。

现在在英创公司提供的例程Step3_TCPServe基础上,加入Qt显示单元,使其能通过显示屏进行操作,基本的思想是还是利用Qt的信号和插槽机制进行对象间的通讯,当接收到的数据的时候,发出Signal,Qt 的事件循环中接收到这个信号,调用定义好的Slot显示接收到的数据。

Step3_TCPServe是一个支持多个客户端的连接TCPServer示例,该例程采用了面向对象的C++编程,创建了CTCPServer和CTCPCustom两个类,其中CTCPServer类负责侦听客户端的连接,一旦有客户端请求连接,它就负责接受此连接,并创建一个新的CTCPCustom类对象与客户端进行通讯,然后CTCPServer类接着监听客户端的连接请求,所以需要让CTCPServer类和CTCPCustom类继承QObject类的属性,使QObject成为CTCPServer类和CTCPCustom类的基类,然后在CTCPServer类和CTCPCustom类中各加入一个signal,让CTCPServer类和CTCPCustom类的信号关联,这样当CTCPCustom类发出信号CTCPServer类也会发出信号,再让CTCPServer类的信号和Qt显示通过信号和插槽的机制连接,但是对于网络通信的操作部分并不用做修改,原理如下图:

继承QObject类的属性,加入信号和槽的方法在《英创Linux主板Qt串口应用程序简介》中有较详细的说明,在CTCPCustom类中,添加的方法也一样,当判断接收到数据时,发送信号,添加程序:

emit pSocket->readyRead(pSocket->RecvBuf);

在前面提到,在CTCPServer类中,当判断有客户端请求连接时,会创建一个CTCPCustom类对象与客户端进行通讯,这时再将CTCPServer类和CTCPCustom类的信号关联:

connect(pClientSocket,SIGNAL(readyRead(QString)),pSocket,SIGNAL(readyRead(QString)));

在Qt中,将两个信号关联,如同上面那样,当pSocket中的信号发送时,pClientSocket中的信号也会跟着发送。

最后在显示窗口Widget类中,将CTCPServer类的信号和显示槽函数关联:

connect(m_TCPServer,SIGNAL(readyRead(QString)),this,SLOT(readData(QString)),Qt::QueuedConnection);

然后可以在显示界面中添加了一些其他功能组件,比如按钮等,然后编写组件的事件响应函数,实现想要的功能,在本例程中,添加了一些按钮和显示,用来选择启动TCPServer,显示IP和端口号等,部分实现代码如下:

void Widget::on_startpushButton_clicked() //侦听按钮
{
char buff_1[16],buff_2[16];
m_TCPServer=new CTCPServer;
m_TCPServer->m_LocalPort = 1001;
if((m_TCPServer->Open())<0)
{
QMessageBox::information(this,tr('错误'),tr('创建失败'),QMessageBox::Yes);
delete m_TCPServer;
return;
}
connect(m_TCPServer,SIGNAL(readyRead(QString)),this,SLOT(readData(QString)),Qt::QueuedConnection); //关联信号和槽
ui->startpushButton->setEnabled(false);
ui->textBrowser_3->setEnabled(true);
QString s=QString::number(m_TCPServer->m_LocalPort,10);
ui->textBrowser_3->insertPlainText(s); //显示端口号
ui->textBrowser_2->setEnabled(true);
if((m_TCPServer->get_inetip('eth0',buff_1))==0)
{
//显示eth0的IP地址
ui->textBrowser_2->append( QString(QLatin1String(buff_1)));
}
if((m_TCPServer->get_inetip('eth1',buff_2))==0)
{
//显示eth1的IP地址
ui->textBrowser_2->append( QString(QLatin1String(buff_2)));
}
ui->closepushButton->setEnabled(true);
}

最后在工程中添加main.cpp,在main函数中,主要是对字体进行设置,并且显示我们设计的窗口:

int main( int argc,char* argv[] )
{
QApplication a(argc, argv);
QFont font('simsun',9,QFont::Bold); //设置字体
QTextCodec::setCodecForTr(QTextCodec::codecForName('utf8'));
a.setFont(font);
Widget w;
w.show();
return a.exec(); //返回Qt事件循环
}

程序运行效果:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11854

    浏览量

    219825
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    37204
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯主板——信体系的智慧硬核基石

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板的自主可控程度直接决定信创新基建的稳固性,正发挥着日
    的头像 发表于 03-11 10:44 304次阅读
    龙芯<b class='flag-5'>主板</b>——信<b class='flag-5'>创</b>体系的智慧硬核基石

    国产金融主板:赋能智慧金融,驱动信产业升级

    随着信息技术的飞速迭代,信产业已在全球范围内崛起,成为拉动经济增长、激活创新动能的核心力量。在信产业的关键布局中,智慧金融建设是重中之重,而国产金融主板的规模化应用,正为智慧金融建
    的头像 发表于 12-31 09:03 294次阅读
    国产金融<b class='flag-5'>主板</b>:赋能智慧金融,驱动信<b class='flag-5'>创</b>产业升级

    国产芯筑基,飞腾主板赋能信未来

    信息技术自主可控成为国家战略的今天,信产业正从“政策驱动”迈向“市场驱动”的高质量发展新阶段。作为信产业链的核心硬件基石,主板的国产化水平直接决定着整个
    的头像 发表于 12-30 09:49 461次阅读
    国产芯筑基,飞腾<b class='flag-5'>主板</b>赋能信<b class='flag-5'>创</b>未来

    龙芯中科助力2025教育信息技术应用创新大赛成功举办

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术
    的头像 发表于 11-21 16:23 984次阅读

    诚迈科技信电脑助力2025第二届教育信息技术应用创新大赛圆满收官

    11月15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委
    的头像 发表于 11-17 17:58 893次阅读
    诚迈科技信<b class='flag-5'>创</b>电脑助力2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛圆满收官

    OBOO鸥柏|信触摸一体机兆芯115寸Linux国产系统技术智造

    BOO鸥柏信触摸一体机:兆芯115寸Linux智造新标杆在信息技术应用创新浪潮中,【OBOO鸥柏】推出的信触摸一体机以其卓越性能和智能化设计,成为行业数字化转型的重要工具。这款搭载
    的头像 发表于 11-16 15:44 3086次阅读
    OBOO鸥柏|信<b class='flag-5'>创</b>触摸一体机兆芯115寸<b class='flag-5'>Linux</b>国产系统<b class='flag-5'>技术</b>智造

    新时代的硬核基石:龙芯工控主板助力信产业新基建

    在数字技术重塑产业格局的今天,信产业已成为保障国家信息技术安全的核心战略。作为工业自动化系统的大脑,工控主板的自主可控程度直接决定信创新基建的稳固性。
    的头像 发表于 11-05 13:54 438次阅读

    龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Qt工程编译、GPU核心使用说明

    本文围绕龙科技研发的评估板,详细说明 Qt 工程编译与 GPU 核心使用方法。涵盖基于命令行和 Qt Creator 工具的 Qt 工程编译流程,包括交叉编译工具链、
    的头像 发表于 09-29 14:16 1066次阅读
    <b class='flag-5'>创</b>龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—<b class='flag-5'>Qt</b>工程编译、GPU核心使用说明

    智慧新核心,龙芯主板助力信体系再升级

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板正发挥着日益重要的作用。
    的头像 发表于 08-11 09:14 859次阅读

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节
    的头像 发表于 08-07 15:35 1872次阅读

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 1103次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 883次阅读

    浪潮澎湃,国产主板迎来黄金时代!

    2025年7月,表示必须在2027年底前完成信100%替代,覆盖基础硬件、基础软件等核心领域。在信息技术应用创新浪潮席卷下,国产主板作为计算机系统的骨架,正从幕后走向台前。政策加持、技术
    的头像 发表于 07-21 14:00 654次阅读

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 1122次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络
    的头像 发表于 06-13 10:06 9887次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略