成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt中采用多線程實(shí)現(xiàn)Socket編程

移動(dòng)開(kāi)發(fā)
Socket通常也稱(chēng)作"套接字",應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。本文將有介紹,請(qǐng)看內(nèi)容。

本文介紹的是Qt中采用多線程Socket編程,由于工作的需要,開(kāi)始接觸Qtsocket編程。Qt里的example是個(gè)不錯(cuò)的教程,但是當(dāng)我把代碼移植到多線程的環(huán)境時(shí)就出問(wèn)題了:

  1. QObject: Cannot create children for a parent that is in a different thread. 

由于想要在線程中保留一個(gè)socket,以便維持雙邊通信,因此定義如下:

  1. SocketThread:public QThread  
  2.     {  
  3.             ....  
  4.             private:  
  5.                   QTcpSocket _tcpSocket;  
  6.      } 

但是這段代碼并無(wú)法正常的完成工作,后來(lái)在網(wǎng)上搜了一下資料,找到以下解釋?zhuān)ㄍ顺鎏幜耍韵率侵形牡拇蟾乓馑迹?ldquo; 在QThread中定義的所有東西都屬于創(chuàng)建該QThread的線程。“

問(wèn)題出來(lái)了,如果按照這個(gè)定義,在SocketThread中定義的_tcpSocket,其實(shí)是屬于mainThread(SocketThread是在main函數(shù)中創(chuàng)建),而當(dāng)我們?cè)赟ocketThread中的run函數(shù)使用到_tcpSocket的時(shí)候,其實(shí)是跨線程調(diào)用,這樣就會(huì)出現(xiàn)上面的異常。

解決方法: 需要對(duì)SocketThread的定義做一下更改:

  1. SocketThread:public QThread  
  2.     {  
  3.             ....  
  4.             private:  
  5.                   QTcpSocket* _tcpSocket;  
  6.      } 

在上面我們并沒(méi)有創(chuàng)建具體的對(duì)象,而是定義了一個(gè)指針,而如何讓指針內(nèi)的內(nèi)容從屬于SocketThread這個(gè)線程呢?答案就是要在SocketThread的run方法中初始化:

  1. SocketThread::run()  
  2.     ... ;  
  3.      _tcpSocket = new QTcpSocket();  

進(jìn)行以上修改之后上面的異常就不再出現(xiàn)了。

小結(jié):Qt中采用多線程Socket編程的內(nèi)容介紹完了,在編程過(guò)程中我們也不免接觸多線程,相信也有一定的了解,最后希望本文對(duì)你有所了解!!!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-13 10:03:19

Qt 多線程 編程

2011-06-13 16:51:19

Qt Socket

2011-06-16 10:38:13

Qt多線程編程

2011-06-30 17:31:32

Qt 多線程 信號(hào)

2011-06-22 16:18:23

QT 多線程 QSocket

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門(mén)

2023-06-13 13:39:00

多線程異步編程

2011-06-24 11:03:31

Qt 多線程 線程

2011-06-24 11:12:39

Qt 多線程 線程

2009-03-12 10:52:43

Java線程多線程

2011-06-22 10:12:08

Qt 線程

2023-05-12 14:14:00

Java線程中斷

2024-10-21 16:59:37

C#編程多線程

2024-06-11 00:00:30

C#編程線程

2011-06-14 09:46:11

Qt QThread 線程

2010-03-03 16:19:29

Python Sock

2011-06-30 18:03:58

QT 多線程 服務(wù)器

2023-04-02 17:53:10

多線程編程自測(cè)

2023-06-07 13:49:00

多線程編程C#

2023-06-05 07:56:10

線程分配處理器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产japanhdxxxx麻豆| 五月天激情综合网 | 黄色在线播放视频 | 久久天堂 | 久久99蜜桃综合影院免费观看 | 国产精品一区二区三级 | 九九色综合 | 国户精品久久久久久久久久久不卡 | 久久人爽爽人爽爽 | 9久9久9久女女女九九九一九 | 成人精品一区二区 | 三级av网址 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 亚洲精品久久久久久国产精华液 | 国产精品视频免费 | 国产精品色一区二区三区 | 亚洲综合色视频在线观看 | 国产免费一区二区三区最新6 | 久久噜 | 精品伊人| 一区二区三区在线 | 天天看天天干 | 午夜在线影院 | 亚洲一二三区在线观看 | a在线视频观看 | 手机看黄av免费网址 | 一级片视频免费观看 | 毛片网站免费观看 | 日韩成人免费视频 | 福利精品在线观看 | 高清视频一区二区三区 | 日韩一级 | 久久久久香蕉视频 | 成人欧美一区二区三区在线播放 | 成年人在线观看视频 | 久久丝袜视频 | 理论片午午伦夜理片影院 | 亚洲在线一区 | 亚洲第一av | 精品1区 | 北条麻妃视频在线观看 |