一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)Linux主板Qt網(wǎng)絡(luò)應(yīng)用程序簡(jiǎn)介

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-17 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux中的網(wǎng)絡(luò)編程是通過(guò)socket接口來(lái)進(jìn)行的。我們常說(shuō)的socket接口是一種特殊的I/O,它也是一種文件描述符,關(guān)于socket編程的應(yīng)用可以參考英創(chuàng)公司光盤(pán)中使用必讀的相關(guān)內(nèi)容。

現(xiàn)在在英創(chuàng)公司提供的例程Step3_TCPServe基礎(chǔ)上,加入Qt顯示單元,使其能通過(guò)顯示屏進(jìn)行操作,基本的思想是還是利用Qt的信號(hào)和插槽機(jī)制進(jìn)行對(duì)象間的通訊,當(dāng)接收到的數(shù)據(jù)的時(shí)候,發(fā)出Signal,Qt 的事件循環(huán)中接收到這個(gè)信號(hào),調(diào)用定義好的Slot顯示接收到的數(shù)據(jù)。

Step3_TCPServe是一個(gè)支持多個(gè)客戶端的連接TCPServer示例,該例程采用了面向?qū)ο蟮?a href="http://www.www27dydycom.cn/tags/C++/" target="_blank">C++編程,創(chuàng)建了CTCPServer和CTCPCustom兩個(gè)類,其中CTCPServer類負(fù)責(zé)偵聽(tīng)客戶端的連接,一旦有客戶端請(qǐng)求連接,它就負(fù)責(zé)接受此連接,并創(chuàng)建一個(gè)新的CTCPCustom類對(duì)象與客戶端進(jìn)行通訊,然后CTCPServer類接著監(jiān)聽(tīng)客戶端的連接請(qǐng)求,所以需要讓CTCPServer類和CTCPCustom類繼承QObject類的屬性,使QObject成為CTCPServer類和CTCPCustom類的基類,然后在CTCPServer類和CTCPCustom類中各加入一個(gè)signal,讓CTCPServer類和CTCPCustom類的信號(hào)關(guān)聯(lián),這樣當(dāng)CTCPCustom類發(fā)出信號(hào)CTCPServer類也會(huì)發(fā)出信號(hào),再讓CTCPServer類的信號(hào)和Qt顯示通過(guò)信號(hào)和插槽的機(jī)制連接,但是對(duì)于網(wǎng)絡(luò)通信的操作部分并不用做修改,原理如下圖:

繼承QObject類的屬性,加入信號(hào)和槽的方法在《英創(chuàng)Linux主板Qt串口應(yīng)用程序簡(jiǎn)介》中有較詳細(xì)的說(shuō)明,在CTCPCustom類中,添加的方法也一樣,當(dāng)判斷接收到數(shù)據(jù)時(shí),發(fā)送信號(hào),添加程序:

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

在前面提到,在CTCPServer類中,當(dāng)判斷有客戶端請(qǐng)求連接時(shí),會(huì)創(chuàng)建一個(gè)CTCPCustom類對(duì)象與客戶端進(jìn)行通訊,這時(shí)再將CTCPServer類和CTCPCustom類的信號(hào)關(guān)聯(lián):

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

在Qt中,將兩個(gè)信號(hào)關(guān)聯(lián),如同上面那樣,當(dāng)pSocket中的信號(hào)發(fā)送時(shí),pClientSocket中的信號(hào)也會(huì)跟著發(fā)送。

最后在顯示窗口Widget類中,將CTCPServer類的信號(hào)和顯示槽函數(shù)關(guān)聯(lián):

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

然后可以在顯示界面中添加了一些其他功能組件,比如按鈕等,然后編寫(xiě)組件的事件響應(yīng)函數(shù),實(shí)現(xiàn)想要的功能,在本例程中,添加了一些按鈕和顯示,用來(lái)選擇啟動(dòng)TCPServer,顯示IP和端口號(hào)等,部分實(shí)現(xiàn)代碼如下:

void Widget::on_startpushButton_clicked() //偵聽(tīng)按鈕
{
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('錯(cuò)誤'),tr('創(chuàng)建失敗'),QMessageBox::Yes);
delete m_TCPServer;
return;
}
connect(m_TCPServer,SIGNAL(readyRead(QString)),this,SLOT(readData(QString)),Qt::QueuedConnection); //關(guān)聯(lián)信號(hào)和槽
ui->startpushButton->setEnabled(false);
ui->textBrowser_3->setEnabled(true);
QString s=QString::number(m_TCPServer->m_LocalPort,10);
ui->textBrowser_3->insertPlainText(s); //顯示端口號(hào)
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函數(shù)中,主要是對(duì)字體進(jìn)行設(shè)置,并且顯示我們?cè)O(shè)計(jì)的窗口:

int main( int argc,char* argv[] )
{
QApplication a(argc, argv);
QFont font('simsun',9,QFont::Bold); //設(shè)置字體
QTextCodec::setCodecForTr(QTextCodec::codecForName('utf8'));
a.setFont(font);
Widget w;
w.show();
return a.exec(); //返回Qt事件循環(huán)
}

程序運(yùn)行效果:

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11508

    瀏覽量

    213658
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6100

    瀏覽量

    36282
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國(guó)家推動(dòng)IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國(guó)家網(wǎng)絡(luò)
    的頭像 發(fā)表于 06-13 10:06 ?1877次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    創(chuàng)浪潮下,國(guó)產(chǎn)主板有什么新的發(fā)展機(jī)遇?

    信息技術(shù)應(yīng)用創(chuàng)新浪潮的推動(dòng)下,國(guó)產(chǎn)主板迎來(lái)了諸多新的發(fā)展機(jī)遇。信創(chuàng)產(chǎn)業(yè)旨在實(shí)現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標(biāo)為國(guó)產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?207次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國(guó)產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機(jī)遇?

    龍芯主板是安全可信基石,可守護(hù)信息資產(chǎn)

    網(wǎng)絡(luò)安全中,信息安全至關(guān)重要。龍芯主板內(nèi)置安全啟動(dòng)技術(shù),從硬件層級(jí)構(gòu)建起堅(jiān)實(shí)的防護(hù)體系。同時(shí),龍芯主板支持國(guó)產(chǎn)麒麟、UOS等操作系統(tǒng),通過(guò)
    的頭像 發(fā)表于 04-22 09:12 ?186次閱讀

    技術(shù)案例】Qt 環(huán)境部署 - Ubuntu 篇

    什么是Qt?Qt是一個(gè)跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架,可構(gòu)建高性能的桌面、移動(dòng)及Web應(yīng)用程序,也可用于開(kāi)發(fā)非GUI程序,比如控制
    的頭像 發(fā)表于 04-16 17:17 ?493次閱讀
    【<b class='flag-5'>技術(shù)</b>案例】<b class='flag-5'>Qt</b> 環(huán)境部署 - Ubuntu 篇

    Linux的作用

    學(xué)校和教育機(jī)構(gòu)使用Linux來(lái)教授計(jì)算機(jī)科學(xué)和信息技術(shù)相關(guān)的課程。 總之,Linux是一個(gè)功能強(qiáng)大、靈活且廣泛應(yīng)用的操作系統(tǒng),適用于各種不同的用途和場(chǎng)景。
    發(fā)表于 04-04 01:57

    芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位

    日前,中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)(以下簡(jiǎn)稱 “信創(chuàng)工委會(huì)”)2024 年度總結(jié)座談會(huì)于北京隆重舉行。此次會(huì)議對(duì)在信創(chuàng)工作中作出突出貢獻(xiàn)的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?628次閱讀

    基于QT開(kāi)發(fā)國(guó)產(chǎn)主板終端桌面程序 高效、穩(wěn)定、跨平臺(tái)的解決方案

    了開(kāi)發(fā)者們面臨的一個(gè)重要挑戰(zhàn)。本文將介紹如何基于QT框架,開(kāi)發(fā)適用于國(guó)產(chǎn)主板的終端桌面程序,并探討其優(yōu)勢(shì)和應(yīng)用場(chǎng)景。 QT是一個(gè)跨平臺(tái)的C++圖形用戶界面
    的頭像 發(fā)表于 01-08 15:34 ?842次閱讀

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?510次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?597次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?567次閱讀

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?950次閱讀

    用國(guó)產(chǎn)化硬件守護(hù)信息安全,飛騰D2000網(wǎng)絡(luò)安全主板應(yīng)用優(yōu)勢(shì)

    在當(dāng)今數(shù)字化時(shí)代,信息技術(shù)飛速發(fā)展,網(wǎng)絡(luò)攻擊事件愈發(fā)頻繁,網(wǎng)絡(luò)安全面臨著前所未有的挑戰(zhàn)。而國(guó)產(chǎn)網(wǎng)絡(luò)安全主板的出現(xiàn),為守護(hù)
    的頭像 發(fā)表于 10-29 10:10 ?806次閱讀

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?875次閱讀

    Linux網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)

    網(wǎng)絡(luò)協(xié)議棧是操作系統(tǒng)核心的一個(gè)重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議棧(Network Stack)負(fù)責(zé)實(shí)現(xiàn) TCP/IP 協(xié)議簇,處理
    的頭像 發(fā)表于 09-10 09:51 ?688次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>協(xié)議棧的實(shí)現(xiàn)

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式
    的頭像 發(fā)表于 09-09 16:29 ?758次閱讀