C++中socket如何實(shí)現(xiàn)跨平臺(tái)-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)C++中socket如何實(shí)現(xiàn)跨平臺(tái)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)主營(yíng)貴港網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app開(kāi)發(fā),貴港h5小程序開(kāi)發(fā)搭建,貴港網(wǎng)站營(yíng)銷(xiāo)推廣歡迎貴港等地區(qū)企業(yè)咨詢(xún)

           網(wǎng)絡(luò)編程

Socket是跨平臺(tái)的在Window和Linux基本通用,無(wú)論是,java php都是需要網(wǎng)絡(luò)的,網(wǎng)絡(luò)編程是每個(gè)程序員都需要掌握的,他并不復(fù)雜。復(fù)雜的地方是對(duì)整個(gè)協(xié)議的理解,還有網(wǎng)絡(luò)通信的理解。

這個(gè)博客是對(duì)整個(gè)網(wǎng)絡(luò)編程中最,學(xué)習(xí)的目的:

{能夠熟悉windows和linux下的開(kāi)發(fā)流程,能夠開(kāi)發(fā)出支持跨平臺(tái)的多線程的網(wǎng)絡(luò)程序。理解socket編程原理,理解udp和tcp的協(xié)議,并能通過(guò)抓包工具分析協(xié)議,通過(guò)本課程的學(xué)習(xí)能夠開(kāi)發(fā)出支持高并發(fā)的網(wǎng)絡(luò)服務(wù)端,通過(guò)開(kāi)發(fā)支持php的http服務(wù)器和syslog服務(wù)器能夠?qū)⒕W(wǎng)絡(luò)編程投入實(shí)戰(zhàn)應(yīng)用。掌握c++11的線程庫(kù)和正則表達(dá)式庫(kù)。}.

使用語(yǔ)音是:C/C++,因?yàn)樗咝阅?對(duì)高并發(fā)的處理很好.

最終可以帶大家實(shí)戰(zhàn)一個(gè)支持PHP腳本的http服務(wù)器。

需要注意的是Socket庫(kù)不等同于TCP/UDP編程,因?yàn)樗€可以開(kāi)發(fā)其他

的一些協(xié)議。

交流群:140066160

進(jìn)入正題:(先講理論,在實(shí)戰(zhàn))

               1TCPIP協(xié)議分層講解

學(xué)習(xí)網(wǎng)絡(luò)編程,他說(shuō)基于什么協(xié)議之上的。不是會(huì)用幾個(gè)函數(shù)就可以了,那么TCP/IP是基于什么協(xié)議呢?

我們對(duì)網(wǎng)絡(luò)編程不能停留在僅僅會(huì)用Socket把兩個(gè)程序調(diào)通了,互相發(fā)送協(xié)議。你要明白整個(gè)協(xié)議的過(guò)程,為了實(shí)踐當(dāng)中解決

問(wèn)題,碰到網(wǎng)絡(luò)問(wèn)題你知道是什么原因。

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

看TCP/TP四層協(xié)議,我看到我們程序人員其實(shí)只要用到

這四層,OSI模型中。

1.網(wǎng)絡(luò)介質(zhì)層

物理層和數(shù)據(jù)鏈路層對(duì)應(yīng)的是“網(wǎng)絡(luò)介質(zhì)層”,

每一層都是為了解決一個(gè)問(wèn)題,他是解決一個(gè)硬件設(shè)備和另一個(gè)硬件設(shè)備在物理上怎么進(jìn)行通信。通信得知道地址,所以“網(wǎng)絡(luò)介質(zhì)層”會(huì)最終封裝出一個(gè)“MAC”地址,就是硬件的地址,來(lái)進(jìn)行通信.

2 IP層

這一層,上面已經(jīng)實(shí)現(xiàn)了一個(gè)設(shè)備到另一個(gè)設(shè)備物理上的連接,但是,我們需要的是真正接收的這個(gè)數(shù)據(jù)呢, 這個(gè)時(shí)候就需要確定是由誰(shuí)來(lái)接收。那我們通過(guò)IP層給每個(gè)設(shè)備封裝一個(gè)IP地址。

然后由交換機(jī)來(lái)進(jìn)行分配,在這層程序成員需要做的是:IP地址建立連接,目前IP地址都是基于IPV4是4個(gè)字節(jié)的IP地址。這個(gè)網(wǎng)絡(luò)層只需要知道IP對(duì)IP地址


    協(xié)議的目的是什么?協(xié)議是怎么實(shí)現(xiàn)的?

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

非常簡(jiǎn)單,原理也非常簡(jiǎn)單,我們就是在用戶(hù)發(fā)送的數(shù)據(jù)加一層頭,最后接收端在通過(guò)解包一層一層去掉。

為了深刻理解上面的圖,我們下載一個(gè)抓包軟件來(lái)看看,Wireshark,可以百度直接就可以下載,抓HTTP的協(xié)議看看

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

  隨便抓到一個(gè)整包(Get的)

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

先看下分析的內(nèi)容

1  frame 最底層的幀數(shù)據(jù),也就是說(shuō)把TCP分層他會(huì)把數(shù)據(jù)


切包,切成一幀一幀的,

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

2 Ethernet II 他對(duì)應(yīng)的是鏈路層的MAC的地址,目標(biāo),源地址

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

3 Internet Protocol,這個(gè)就是上面講的IP層,這里有目標(biāo)ID

來(lái)源IP等信息,

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

4 Transmission 傳輸層,端口號(hào),原端口號(hào),目標(biāo)端口,

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

5 Hypertext Transfer Protocol應(yīng)用層,圖片中是

Http協(xié)議會(huì)發(fā)送一個(gè)Get請(qǐng)求過(guò)去

C++中socket如何實(shí)現(xiàn)跨平臺(tái)

需要搞跨平臺(tái),需要用到Linux 。ubuntu 16.04 .先到這

感謝各位的閱讀!關(guān)于“C++中socket如何實(shí)現(xiàn)跨平臺(tái)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:C++中socket如何實(shí)現(xiàn)跨平臺(tái)-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article38/cddspp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序企業(yè)網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站制作、定制開(kāi)發(fā)微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司