91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Linux關(guān)于UDP的學(xué)習(xí)詳細(xì)講解

jf_f8pIz0xS ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:_YKitty ? 2021-05-02 16:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前序

UDP(用戶數(shù)據(jù)報(bào)協(xié)議)沒(méi)有連接的,是面向數(shù)據(jù)報(bào)的,是不可靠

套接字

就是IP地址+端口號(hào)

IP地址:4字節(jié)

端口號(hào):2字節(jié),也就是說(shuō)范圍是0~65535

端口號(hào)分為

知名端口號(hào)

0--1023:http,ssh,ftp,telnet等一些協(xié)議端口號(hào)都是固定的,對(duì)于操作系統(tǒng)來(lái)說(shuō)是不能對(duì)其進(jìn)行分配的

一些固定的端口號(hào)

ssh服務(wù)器,使用22端口

ftp服務(wù)器,使用21端口

telnet服務(wù)器,使用23端口

http服務(wù)器,使用80端口

https服務(wù)器,使用443端口

操作系統(tǒng)動(dòng)態(tài)分配的端口號(hào)

客戶端服務(wù)器的端口號(hào),這個(gè)范圍的端口號(hào)操作系統(tǒng)可以對(duì)其進(jìn)行分配

查看端口號(hào)

less /etc/services

//就可以查看Linux下所有的端口號(hào)了

IP地址的理解:

IP地址用來(lái)標(biāo)識(shí)一個(gè)主機(jī)

端口號(hào)的理解:

端口號(hào)就是用來(lái)告訴操作系統(tǒng)要對(duì)于那一個(gè)進(jìn)程進(jìn)行操作,也就是說(shuō)端口號(hào)就是用來(lái)標(biāo)識(shí)一個(gè)進(jìn)程

一個(gè)端口號(hào)只可被一個(gè)進(jìn)程所占用,但是一個(gè)進(jìn)程可以擁有多個(gè)端口號(hào),也就是進(jìn)程和端口號(hào)是一對(duì)多的關(guān)系

當(dāng)我們寫一個(gè)程序使用端口號(hào)的時(shí)候,要避開(kāi)這些知名端口號(hào)

【問(wèn)題】

一個(gè)進(jìn)程是否可以bind多個(gè)端口號(hào)呢?

可以,因?yàn)橐粋€(gè)進(jìn)程可以打開(kāi)多個(gè)文件描述符,而每一個(gè)文件描述符都對(duì)應(yīng)著一個(gè)端口號(hào),所以一個(gè)進(jìn)程可以綁定多個(gè)端口號(hào)

一個(gè)端口號(hào)是否可以被多個(gè)進(jìn)程bind?

不可以

如果一個(gè)進(jìn)程先綁定一個(gè)端口號(hào),然后再fork一個(gè)子進(jìn)程,這樣的話就實(shí)現(xiàn)了多個(gè)進(jìn)程綁定一個(gè)端口號(hào),但是不同的進(jìn)程綁定同一個(gè)端口號(hào)是不可以的

TIME_WAIT狀態(tài),服務(wù)器不能立即重啟也說(shuō)明不用進(jìn)程不能同時(shí)綁定同一個(gè)端口號(hào)

多個(gè)進(jìn)程可以監(jiān)聽(tīng)同一個(gè)端口號(hào)嗎?

可以。監(jiān)聽(tīng)之前要進(jìn)行創(chuàng)建套接字-》綁定ip::端口號(hào)-》監(jiān)聽(tīng)。我們可以在bind之前使用setsockopt函數(shù),設(shè)置套接字選項(xiàng),其中就包括REUSEADDR這個(gè)選項(xiàng),表明多個(gè)進(jìn)程可以復(fù)用bind函數(shù)中指定的地址和端口號(hào)

所以套接字就可以準(zhǔn)確的標(biāo)識(shí)一臺(tái)主機(jī)上的一個(gè)進(jìn)程,從而完成計(jì)算機(jī)之間的通信

計(jì)算機(jī)之間的通信:

主機(jī)A的某個(gè)進(jìn)程與主機(jī)B上的另一個(gè)進(jìn)程進(jìn)行通信

網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換

對(duì)于數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)臅r(shí)候有著自己遵循的傳輸規(guī)則大端傳輸

對(duì)于主機(jī)上的數(shù)據(jù)的傳輸序列有著兩種:

大端:即高位字節(jié)序放在低地址上

小端:即低位字節(jié)序放在低地址上

傳輸:均是先傳輸?shù)偷刂飞系臄?shù)據(jù)然后是高地址上的數(shù)據(jù)

所以對(duì)于主機(jī)上的數(shù)據(jù)傳輸?shù)臅r(shí)候傳輸?shù)骄W(wǎng)絡(luò)上的時(shí)候有可能導(dǎo)致數(shù)據(jù)錯(cuò)誤(例如主機(jī)上是小端的時(shí)候,所以需要進(jìn)行轉(zhuǎn)換)

轉(zhuǎn)換函數(shù):

#include 《arpa/inet.h》

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16 hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

h:表示主機(jī)host name

n:表示網(wǎng)絡(luò)network

l:表示4字節(jié)long

s:表示2字節(jié)short

地址轉(zhuǎn)換函數(shù)

字符串轉(zhuǎn)化為in_addr

in_addr_t inet_addr(const char* strptr)

in_addr轉(zhuǎn)化為字符串

char* inet_ntoa(struct in_addr inaddr)

具有不可重入性,也就是不可多次調(diào)用,因?yàn)樵摵瘮?shù)自己在靜態(tài)區(qū)開(kāi)辟一塊空間用來(lái)存放IP地址字符串的

UDP協(xié)議

UDP協(xié)議端格式

插圖:UDP協(xié)議端格式

16為UDP長(zhǎng)度,表示整個(gè)數(shù)據(jù)報(bào)(UDP首部+UDP數(shù)據(jù))的最大長(zhǎng)度(64KB)

檢驗(yàn)和:如果校驗(yàn)和出錯(cuò),就會(huì)直接丟棄(檢驗(yàn)的是把首部和數(shù)據(jù)部分一起都檢驗(yàn))

校驗(yàn)值首先在數(shù)據(jù)發(fā)送方通過(guò)特殊的算法計(jì)算得出,在傳遞到接收方之后,還要在重新計(jì)算。如果某個(gè)數(shù)據(jù)報(bào)在傳輸過(guò)程中被第三方篡改或者由于線路噪音等原因受到損壞,發(fā)送和接收方的校驗(yàn)計(jì)算值將不會(huì)相符,由此UDP協(xié)議可以檢驗(yàn)是否出錯(cuò)。

源端口號(hào):在對(duì)方回信是選用,不需要時(shí)可用全0

目的端口號(hào):在終點(diǎn)交付報(bào)時(shí)必須要用到

長(zhǎng)度:UDP用戶數(shù)據(jù)報(bào)的長(zhǎng)度,其最小值是8(僅有首部)

UDP的特點(diǎn)

無(wú)連接:直到對(duì)端的IP和端口號(hào)就直接進(jìn)行傳輸,不需要建立連接

不可靠:沒(méi)有確認(rèn)機(jī)制,沒(méi)有重傳機(jī)制;因?yàn)闆](méi)有網(wǎng)絡(luò)故障該段無(wú)法發(fā)送到對(duì)方,UDP協(xié)議層也不會(huì)給應(yīng)用層返回任何錯(cuò)誤信息

面向數(shù)據(jù)報(bào):不能夠靈活的控制讀寫數(shù)據(jù)的次數(shù)和數(shù)量

控制選項(xiàng)較少,數(shù)據(jù)傳輸過(guò)程中延遲小,數(shù)據(jù)傳輸效率高

面向數(shù)據(jù)報(bào)

應(yīng)用層交給UDP多長(zhǎng)的報(bào)文,UDP原樣發(fā)送,既不會(huì)拆分也不會(huì)合并

例:用UDP傳輸100個(gè)字節(jié)的數(shù)據(jù)

如果發(fā)送端調(diào)用一次sendto,發(fā)送100個(gè)字節(jié)。那么接收端也必須調(diào)用對(duì)應(yīng)的一次recvfrom,接收100字節(jié);而不能循環(huán)調(diào)用10次recvfrom,每次發(fā)送10個(gè)字節(jié)

UDP的緩存區(qū)

UDP沒(méi)有發(fā)送緩存區(qū),調(diào)用sendto之后會(huì)直接交給內(nèi)核,由內(nèi)核·將數(shù)據(jù)傳給網(wǎng)絡(luò)層協(xié)議進(jìn)行后續(xù)的傳輸動(dòng)作。因?yàn)閁DP是不面向連接的,所以沒(méi)有重發(fā)機(jī)制,也就不需要發(fā)送緩存區(qū)將已經(jīng)發(fā)送的數(shù)據(jù)保存下來(lái)為了發(fā)送失敗進(jìn)行重傳做準(zhǔn)備

UDP具有接收緩存區(qū)。但是這個(gè)接收緩存區(qū)不能保證收到的UDP報(bào)的順序和發(fā)送UDP報(bào)的順序一致;如果緩存區(qū)滿了,在到達(dá)的UDP數(shù)據(jù)就會(huì)被丟棄

UDP的Socket既能讀,也能寫,全雙工

UDP的使用注意事項(xiàng)

UDP協(xié)議首部中有一個(gè)16位的最大長(zhǎng)度,也就是說(shuō)一個(gè)UDP能傳輸?shù)臄?shù)據(jù)的最大長(zhǎng)度是64K(包含UDP首部)。但是64K在當(dāng)今的互聯(lián)網(wǎng)環(huán)境下,是一個(gè)非常小的數(shù)字。如果我們需要傳輸?shù)臄?shù)據(jù)超過(guò)64K,就需要應(yīng)用層手動(dòng)的分包,多次發(fā)送,并在接收端拼裝

UDP首部中校驗(yàn)和的計(jì)算方法有些特殊。在計(jì)算校驗(yàn)和時(shí),要在UDP用戶數(shù)據(jù)報(bào)之前增加12個(gè)字節(jié)的偽首部

偽首部既不向下傳輸也不想上遞送,而僅僅是為了計(jì)算校驗(yàn)和

與IP數(shù)據(jù)報(bào)的校驗(yàn)和只檢驗(yàn)IP數(shù)據(jù)報(bào)的首部不同,UDP的校驗(yàn)和是把首部和數(shù)據(jù)部分一起都檢驗(yàn)

偽首部:

插圖:偽首部

基于UDP的應(yīng)用層的協(xié)議

NFS:網(wǎng)絡(luò)文件系統(tǒng)

TFTP:簡(jiǎn)單文件傳輸文件協(xié)議

DHCP:動(dòng)態(tài)主機(jī)配置協(xié)議

DNS:域名解析協(xié)議

面試題:用UDP實(shí)現(xiàn)可靠傳輸?

參考TCP的可靠性機(jī)制,在應(yīng)用層實(shí)現(xiàn)類似的邏輯

引用序列號(hào),保證數(shù)據(jù)順序

引入確認(rèn)應(yīng)答,確保對(duì)端收到了數(shù)據(jù)

引入超時(shí)重傳,如果隔一段時(shí)間沒(méi)有應(yīng)答,就重發(fā)數(shù)據(jù)

1. 對(duì)于socket函數(shù)的使用

1.1 函數(shù)原型

int socket(int domain, int type, int protocol);

domain: 領(lǐng)域

AF_INET:IPV4

AF_INET6:IPV6

type: 類型

SOCK_STREAM

SOCK_DGARM

protocol: 協(xié)議

1.2 函數(shù)的作用

在通信領(lǐng)域中創(chuàng)建一個(gè)未被綁定的套接字,并且返回一個(gè)文件描述符,可以在以后對(duì)套接字進(jìn)行操作的函數(shù)調(diào)用中使用

2. 對(duì)于bind函數(shù)的使用

2.1 函數(shù)原型

int bind(int socket, const struct sockaddr* address, socklen_t address_len);

2.2. 函數(shù)的作用

該函數(shù)采用先前創(chuàng)建好的套接字來(lái)對(duì)于IP地址以及端口號(hào)進(jìn)行綁定,也就是表示該套接字可以標(biāo)識(shí)出在一個(gè)網(wǎng)絡(luò)中一臺(tái)確定的主機(jī)并且主機(jī)中的進(jìn)程

3. 對(duì)于recvfrom函數(shù)的使用

3.1 函數(shù)原型

ssize_t recvfrom(int socket, void* restrict buffer, size_t length,

int flags, struct sockaddr* restrict address,

socklen_t* restrict address_len);

socket:要接受那一個(gè)套接字的消息

buffer:用來(lái)接收消息的緩存區(qū)

length:接收的消息的長(zhǎng)度

flags:類型

address:空指針或者存儲(chǔ)發(fā)送信息的sockaddr結(jié)構(gòu)

addless_len:指定地址參數(shù)指向的sockaddr結(jié)構(gòu)的長(zhǎng)度

3.2 函數(shù)的作用

用來(lái)接收從socket套接字發(fā)送來(lái)的消息。該套接字的sockaddr結(jié)構(gòu)也知道

4. 對(duì)于sendto函數(shù)的使用

4.1 函數(shù)原型

ssize_t recvfrom(int socket, const void* message, size_t length,

int flags, const struct sockaddr* dest_addr,

socklen_t* dest_len);

4.2 函數(shù)的作用

該函數(shù)是socket套接字從dest_addr出接收消息

5. 擴(kuò)展知識(shí)

5.1 netstat

netstat是一個(gè)用來(lái)監(jiān)控TCP/IP網(wǎng)絡(luò)非重要工具

語(yǔ)法:netstat [選項(xiàng)]

功能:查看網(wǎng)絡(luò)狀態(tài)

選項(xiàng):

-a,顯示所有連線的Socket

-c,持續(xù)列出網(wǎng)絡(luò)狀態(tài)

-n,直接使用ip地址,而不通過(guò)域名服務(wù)器,也就是顯示為數(shù)字

-l,顯示監(jiān)控中的服務(wù)器的Socket,僅列出監(jiān)聽(tīng)(Listen)狀態(tài)下的Socket

-p,顯示正在使用Socket的程序的識(shí)別碼和名稱(PID/Program name)

-t,顯示TCP傳輸協(xié)議的連線狀況

-u,顯示UDP傳輸協(xié)議的連線狀況

-v,顯示指令執(zhí)行過(guò)程

-V,顯示版本信息

-x,顯示UNIX傳輸協(xié)議的連線狀況

-s,顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表

-h,在線幫助

5.2 pidof

查看服務(wù)器進(jìn)程id是非常方面

語(yǔ)法:pisdof [進(jìn)程名]

功能:通過(guò)進(jìn)程名,查看進(jìn)程id

5.3 scp命令

基于ssh登錄進(jìn)行的網(wǎng)絡(luò)安全的遠(yuǎn)程文件拷貝命令

例:要將自己當(dāng)前路徑下的clinet文件發(fā)送到主機(jī)IP為192.168.153.140的home目錄下

scp 。/clinet root@192.168.153.140:/home

5.4 關(guān)于防火墻的命令

啟動(dòng):systemctl start firewalld

關(guān)閉:systemctl stop firewalld

查看狀態(tài):systemctl status firewalld

開(kāi)機(jī)禁用:systemctl disable firewalld

開(kāi)機(jī)啟用:systemctl enable firewalld

# 對(duì)于UDP書寫服務(wù)器的思路

由于UDP是無(wú)連接的,所以對(duì)于兩個(gè)處于同一局域網(wǎng)下計(jì)算機(jī)的進(jìn)程之間通信,所以是不需要兩臺(tái)計(jì)算機(jī)之間的進(jìn)程進(jìn)行連接的,對(duì)于UDP使用的接口是需要包含知道從哪里接收消息的,要發(fā)送消息到哪里的。

實(shí)現(xiàn)本地通信

服務(wù)器

只需要服務(wù)器創(chuàng)建一個(gè)套接字

使該套接字對(duì)于本地地址(127.0.0.1)進(jìn)行綁定,并且綁定一個(gè)端口號(hào)(1024--65535)就行了

綁定本地地址是為了對(duì)于本地計(jì)算機(jī)的兩個(gè)進(jìn)程進(jìn)程通信,而綁定端口號(hào)是為了綁定一個(gè)進(jìn)程,是為了對(duì)于客戶端進(jìn)行發(fā)送消息到服務(wù)器的時(shí)候,可以找到服務(wù)器

然后就接受客戶端發(fā)來(lái)的消息

對(duì)于客戶端的消息進(jìn)行處理然后就可以再次將處理后的消息進(jìn)行返回

插圖:服務(wù)器流程

客戶端

綁定一個(gè)套接字

為了綁定一個(gè)進(jìn)程,可以和服務(wù)器進(jìn)行通信,將消息發(fā)送過(guò)去的時(shí)候要讓服務(wù)器知道是哪一個(gè)進(jìn)程再和他進(jìn)程通信

客戶端只需要向服務(wù)器發(fā)送消息

然后再次從客戶端接收消息就好了,不需要考慮要進(jìn)行連接

插圖:客戶端流程

實(shí)現(xiàn)處于同一局域網(wǎng)下的不同主機(jī)間進(jìn)行通信

服務(wù)器

和本地通信的一致,只是對(duì)于套接字綁定的ip地址不一樣了

也對(duì)于套接字要綁定該局域網(wǎng)的ip地址以及一個(gè)端口號(hào),不需要在綁定本地地址(127.0.0.1)了

這樣的話處于同一局域網(wǎng)下的計(jì)算機(jī)的進(jìn)程就可以進(jìn)行通信了

客戶端

對(duì)于客戶端來(lái)說(shuō)沒(méi)有任何改變,仍然是只需要知道服務(wù)器的ip和端口號(hào)就行了

對(duì)于UDP服務(wù)器要注意的問(wèn)題

啟動(dòng)客戶端

啟動(dòng)客戶端的時(shí)候必須給客戶端輸入一個(gè)ip地址和端口號(hào),這個(gè)ip地址和端口號(hào)也就是要知道客戶端要發(fā)送消息給哪一個(gè)服務(wù)器進(jìn)行發(fā)送

啟動(dòng)服務(wù)器

必須要給服務(wù)器綁定一個(gè)ip地址和端口號(hào),也就是要注意該服務(wù)器處于該計(jì)算機(jī)上的哪一個(gè)進(jìn)程上
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    88

    文章

    11772

    瀏覽量

    219136
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10272

    瀏覽量

    91556
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    零知IDE——基于STM32與W5500的UDP通信實(shí)現(xiàn)溫濕度監(jiān)控

    本文詳細(xì)介紹了一個(gè)基于零知增強(qiáng)板(STM32F407VET6)和W5500以太網(wǎng)模塊的UDP通信溫濕度監(jiān)控系統(tǒng)。系統(tǒng)通過(guò)DHT11傳感器采集數(shù)據(jù),通過(guò)W5500實(shí)現(xiàn)UDP通信,支持遠(yuǎn)程LED控制
    的頭像 發(fā)表于 02-28 15:26 ?1542次閱讀
    零知IDE——基于STM32與W5500的<b class='flag-5'>UDP</b>通信實(shí)現(xiàn)溫濕度監(jiān)控

    Linux磁盤管理指令合集:從查看、分區(qū)到修復(fù)

    Linux 服務(wù)器運(yùn)維或日常使用中,磁盤管理是高頻操作 —— 無(wú)論是排查磁盤空間不足的問(wèn)題,還是新增硬盤后的分區(qū)配置,都離不開(kāi)一系列核心指令。今天就為大家整理一份「Linux 磁盤管理指令操作集」,按功能分類講解,附帶示例和
    的頭像 發(fā)表于 02-03 16:07 ?2190次閱讀
    <b class='flag-5'>Linux</b>磁盤管理指令合集:從查看、分區(qū)到修復(fù)

    【「Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)」閱讀體驗(yàn)】+讀深入理解Linux內(nèi)核內(nèi)存分配

    每個(gè)內(nèi)存地址是虛擬的,不是直接指向RAM中的任何地址。當(dāng)用戶訪問(wèn)內(nèi)存中的存儲(chǔ)單元時(shí),都會(huì)進(jìn)行地址轉(zhuǎn)換以匹配相應(yīng)的物理內(nèi)存。書籍的第10章討論了五個(gè)主題,對(duì)Linux內(nèi)核內(nèi)存分配進(jìn)行詳細(xì)講解。 接著
    發(fā)表于 01-16 20:05

    如何在Zynq UltraScale+ MPSoC平臺(tái)上通過(guò)JTAG啟動(dòng)嵌入式Linux鏡像

    流程教程)。本文則進(jìn)一步講解如何在 Zynq UltraScale+ MPSoC 平臺(tái)上通過(guò) JTAG 逐步啟動(dòng) Linux,并提供了完整的過(guò)程與關(guān)鍵命令。只要按步驟操作,即使是復(fù)雜的 Linux 鏡像也能成功通過(guò) JTAG 啟
    的頭像 發(fā)表于 01-13 11:45 ?4651次閱讀

    linux-arm開(kāi)發(fā)環(huán)境的簡(jiǎn)單配置

    linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置 關(guān)于linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置是ARM學(xué)習(xí)的第一步,很多初學(xué)者會(huì)在這問(wèn)題上糾結(jié)很久都不能配置好開(kāi)發(fā)環(huán)境。推薦大家看一下韋東山視頻,講得很
    發(fā)表于 01-13 07:56

    【「Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)」閱讀體驗(yàn)】+讀內(nèi)核處理的核心輔助函數(shù)

    理解Linux內(nèi)核時(shí)間管理”知識(shí)點(diǎn)。 Linux內(nèi)核時(shí)間管理部分,作者圖文并茂,詳細(xì)介紹了其實(shí)現(xiàn)流程。 通過(guò)對(duì)這幾章節(jié)的學(xué)習(xí),體會(huì)到作者在知識(shí)點(diǎn)介紹方面承上啟下,層層深入,由常見(jiàn)的調(diào)用
    發(fā)表于 01-10 22:08

    DR1平臺(tái)Linux應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

    本文為創(chuàng)龍科技DR1 系列評(píng)估板 Linux 應(yīng)用開(kāi)發(fā)手冊(cè),系統(tǒng)講解開(kāi)發(fā)環(huán)境搭建、GDB 調(diào)試、多類型應(yīng)用案例及 MQTT 通信實(shí)現(xiàn)。核心內(nèi)容包括 LinuxSDK 與工具鏈配置、GDB 遠(yuǎn)程調(diào)試
    的頭像 發(fā)表于 01-05 16:48 ?4598次閱讀
    DR1平臺(tái)<b class='flag-5'>Linux</b>應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

    TCP和UDP的區(qū)別

    首先概括一下基本的區(qū)別: TCP是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。 而UDP是一個(gè)面向無(wú)連接的傳輸層協(xié)議。(就這么簡(jiǎn)單,其它TCP的特性也就沒(méi)有了)。 具體來(lái)分析,和 UDP
    發(fā)表于 12-09 07:24

    【免費(fèi)送書】成為硬核Linux開(kāi)發(fā)者:《Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)》

    Linux系統(tǒng)的設(shè)備驅(qū)動(dòng)開(kāi)發(fā),一直給人門檻較高的印象,主要因內(nèi)核機(jī)制抽象、需深度理解硬件原理、開(kāi)發(fā)調(diào)試難度大所致。2021年,一本講解驅(qū)動(dòng)開(kāi)發(fā)的專著問(wèn)世即獲市場(chǎng)青睞,暢銷近萬(wàn)冊(cè)——這便是《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)》。
    的頭像 發(fā)表于 11-18 08:06 ?1505次閱讀
    【免費(fèi)送書】成為硬核<b class='flag-5'>Linux</b>開(kāi)發(fā)者:《<b class='flag-5'>Linux</b> 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)》

    【書籍評(píng)測(cè)活動(dòng)NO.67】成為硬核Linux開(kāi)發(fā)者:《Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)》

    ,以獲得最佳學(xué)習(xí)效果。第1篇:Linux內(nèi)核開(kāi)發(fā)基礎(chǔ)開(kāi)篇從環(huán)境搭建入手,詳細(xì)講解如何獲取Linux內(nèi)核源碼,在x86宿主機(jī)上配置ARM的
    發(fā)表于 11-17 17:52

    學(xué)習(xí)Linux應(yīng)該從哪里開(kāi)始?

    在工業(yè)控制、邊緣計(jì)算、人工智能這些領(lǐng)域,有一句幾乎約定俗成的話: “會(huì)不會(huì) Linux,決定了你能走多遠(yuǎn)。” 但對(duì)很多剛?cè)腴T的工程師來(lái)說(shuō),Linux 看起來(lái)像個(gè)龐大又神秘的世界——命令行、驅(qū)動(dòng)、內(nèi)核
    的頭像 發(fā)表于 10-16 09:51 ?473次閱讀
    <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>Linux</b>應(yīng)該從哪里開(kāi)始?

    【「Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗(yàn)】+基礎(chǔ)概念學(xué)習(xí)理解

    系統(tǒng)的基礎(chǔ)知識(shí),及yocto的基礎(chǔ)知識(shí)。這部分內(nèi)容對(duì)于我這樣有一定 Linux 基礎(chǔ)的讀者來(lái)說(shuō),起到了很好的復(fù)習(xí)和鞏固作用,同時(shí)也為后續(xù)學(xué)習(xí) Yocto 項(xiàng)目奠定了堅(jiān)實(shí)的理論基礎(chǔ)。 元數(shù)據(jù) 元數(shù)據(jù)架構(gòu)
    發(fā)表于 08-04 22:29

    第六章 W55MH32 UDP?Multicast示例

    本文介紹了在W55MH32芯片上實(shí)現(xiàn)UDP組播的原理、應(yīng)用場(chǎng)景及回環(huán)測(cè)試方法,并通過(guò)實(shí)戰(zhàn)代碼展示了其具體實(shí)現(xiàn)過(guò)程。下一篇文章將聚焦DNS例程,講解其工作原理及實(shí)現(xiàn)方法,幫助大家更深入地理解網(wǎng)絡(luò)通信。敬請(qǐng)期待!
    的頭像 發(fā)表于 07-24 09:19 ?1086次閱讀
    第六章 W55MH32 <b class='flag-5'>UDP</b>?Multicast示例

    第五章 W55MH32 UDP示例

    本文介紹了在 W55MH32?芯片上實(shí)現(xiàn) UDP?通信及數(shù)據(jù)回環(huán)測(cè)試的方法。闡述了 UDP?協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、報(bào)文傳輸流程和報(bào)文結(jié)構(gòu),展示了實(shí)現(xiàn)過(guò)程,借助網(wǎng)絡(luò)調(diào)試工具完成測(cè)試。
    的頭像 發(fā)表于 07-24 09:13 ?1131次閱讀
    第五章 W55MH32 <b class='flag-5'>UDP</b>示例

    樹莓派4 性能大比拼:標(biāo)準(zhǔn)Linux與實(shí)時(shí)Linux 4.19內(nèi)核的延遲測(cè)試

    引言本文是對(duì)我之前關(guān)于RaspberryPi3同一主題的帖子的更新。與之前的帖子一樣,我使用的是隨Raspbian鏡像提供的標(biāo)準(zhǔn)內(nèi)核,以及應(yīng)用了RT補(bǔ)丁的相似內(nèi)核版本。對(duì)于實(shí)時(shí)版,我
    的頭像 發(fā)表于 03-25 09:39 ?846次閱讀
    樹莓派4 性能大比拼:標(biāo)準(zhǔn)<b class='flag-5'>Linux</b>與實(shí)時(shí)<b class='flag-5'>Linux</b> 4.19內(nèi)核的延遲測(cè)試