Qt學習心得之網路程式設計簡單的區域網聊天服務端建立

2021-07-04 02:38:29 字數 1969 閱讀 4836

學而不思則罔,思而不學則殆。學習和思考是相輔相成的,通過這幾天對網路程式設計的學習,收穫頗豐。接下來我將利用qt

做的乙個以

tcpip

首先談談我個人對tcp

協議的理解:

tcp就是網上購物,買家和買家之間的物品傳遞,快遞公司的扮演。快遞公司將賣家所要寄出的物品進行包裝,給予獨特的號碼,並從賣家獲取目的地位址,得知這些明確資訊後準確將物品送到買家,買家簽收後,賣家通過快遞單號查詢到買家簽收的訊息。

其次是這個簡單區域網聊天伺服器的建立思路。如下圖是思路的框圖:

乙個伺服器的建立,必須要有對外雙向通訊的介面就是套接字(socket

),所以需要建乙個

mysocket

的類,這樣才可以將不同客戶端的訊息發給其他客戶端。之後還需要再建立乙個

myserver

的類,將每個客戶端傳送的訊息通過

mysocket

傳送訊號被接受。然後在每個客戶端對應的每個

myserver

中將各自傳送的訊號傳送給其他客戶端,並再傳送給

server在ui

介面上顯示。如圖:在

mysocket

和myserver

以及myserver

和server

之間的聯絡都是通過傳送訊號,並利用槽函式進行處理,所以這整個程式的關鍵是合理運用訊號和槽函式,將資訊順利傳達。

然後是程式的展示和一些關鍵點的處理方式。

//********************====mysocket.c*************************====//

mytcpsocket::mytcpsocket(qobject *parent) :/*在建構函式中進行訊號和槽函式的連線

*/qtcpsocket(parent)

void mytcpsocket::slotreadyread()      

void mytcpsocket::slotdisconnect()   

//********************====myserver.c*************************====//

mytcpserver::mytcpserver(qobject *parent) :   /*在建構函式中監聽

*/    qtcpserver(parent)

void mytcpserver::incomingconnection(qintptr socketdescriptor)

void mytcpserver::slotdisconnect(qintptr sockfd)/*斷開槽函式處理主要是將斷開的客戶端從容器中移除*/

} }

void mytcpserver::slotupdatemsg(qstring msg,qintptr sockfd,qstring ip)

void mytcpserver::slotrecivermsg(qstring msg,qintptr sockfd,qstring ip)

} }

//********************====server.c*************************====//

tcpserver::tcpserver(qwidget *parent) :  /*在建構函式中進行訊號和槽函式的連線

*/qwidget(parent),

ui(new ui::tcpserver)

tcpserver::~tcpserver()  /*析構函式中釋放

ui*/

void tcpserver::recivermsg(qstring msg,qstring ip)

最後感謝彙文,在彙文培訓學習也有三個多月了,在這個融洽的大家庭中,感覺每天都很充實,在學習中實踐,在實踐中收穫,願自己在將來能找到乙份合適的工作。

網路程式設計學習心得

unix struct in addr 32為的位址結構,是網路位元組序 struct sockaddr in s un b struct s un w u long s addr s un in addr,pin addr,far lpin addr union的作用是將大括號裡所有的東西的記憶體...

QT學習筆記之QT網路程式設計

tcp 傳輸控制協議,提供的是面向連線 可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。udp 使用者資料報協議,是乙個簡單的面向資料報的運輸層協議。udp...

Python高階語法 網路程式設計 學習心得筆記

每一層都有相應的協議負責交換資訊或者協同工作 tcp ip 協議 埠 tcp udp協議 tcp socket程式設計 import socket 模擬伺服器的函式 建立乙個伺服器端 def serverfunc 1.建立socket socket.af inet 使用ipv4協議 socket.s...