網(wǎng)絡(luò)編程概述
不同于之前學(xué)習(xí)的所有通訊方法,多基于Linux內(nèi)核實(shí)現(xiàn),只能在同一個(gè)系統(tǒng)中不同進(jìn)程或線程間通訊,Linux的網(wǎng)絡(luò)編程可以實(shí)現(xiàn)真正的多機(jī)通訊!
兩個(gè)不相關(guān)的終端要實(shí)現(xiàn)通訊,必須依賴網(wǎng)絡(luò),通過地址來找到對(duì)方,所謂地址包含的兩個(gè)重要概念就是?IP地址 和 端口號(hào)。
一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù),比如Web服務(wù),F(xiàn)TP服務(wù),SMTP服務(wù)等,這些服務(wù)完全可以通過一個(gè)IP地址來實(shí)現(xiàn),所以還需要一個(gè)端口號(hào)來確定訪問通道。
服務(wù)器一般是通過知名端口號(hào)來識(shí)別的。例如,對(duì)于每個(gè)TCP/IP實(shí)現(xiàn)來說,F(xiàn)TP服務(wù)器的TCP端口號(hào)是21,每個(gè)Telnet服務(wù)器的TCP端口號(hào)是23 等等...
當(dāng)通過地址找到彼此之后,數(shù)據(jù)的交流格式就叫協(xié)議。協(xié)議有很多種,比如http, tcp, udp等等,他們都有各自的數(shù)據(jù)格式。
其實(shí)之前學(xué)習(xí)的單片機(jī)和PC機(jī)的通訊就是基于串口協(xié)議,也就是8位數(shù)據(jù)位,是否奇偶校驗(yàn)位等等...
- TCP協(xié)議:面向連接的,發(fā)送數(shù)據(jù)前需要保證連接,可靠但數(shù)據(jù)量小,只能1對(duì)1通訊
- UDP協(xié)議:面向報(bào)文的,不關(guān)心對(duì)方是否準(zhǔn)確收到,不可靠但數(shù)據(jù)量大,支持N對(duì)M的交互通訊
而不管是TCP協(xié)議還是UDP協(xié)議,都可以結(jié)合socket網(wǎng)絡(luò)編程來學(xué)習(xí)。
字節(jié)序
字節(jié)序(Byte Order)是指多字節(jié)數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中存儲(chǔ)或者網(wǎng)絡(luò)傳輸時(shí)各字節(jié)的存儲(chǔ)順序。
概念回顧:1個(gè)字節(jié) = 1個(gè)Byte = 8個(gè)bit?= 8位
常見序:
- Little endian:小端字節(jié)序:將低續(xù)字節(jié)存儲(chǔ)在起始地址
- Big endian:大端字節(jié)序:將高序字節(jié)存儲(chǔ)在起始地址
注意??!
網(wǎng)絡(luò)字節(jié)序 = 大端字節(jié)序
x86系統(tǒng)的CPU = 小端字節(jié)序
所以網(wǎng)絡(luò)字節(jié)序和電腦的字節(jié)序是相反的!
這是在網(wǎng)絡(luò)編程中需要注意的很重要的一點(diǎn)!
?文章來源地址http://www.zghlxwxcb.cn/news/detail-671466.html文章來源:http://www.zghlxwxcb.cn/news/detail-671466.html
?
到了這里,關(guān)于Linux 網(wǎng)絡(luò)編程 和 字節(jié)序的概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!