<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

物聯網LWIP之socket編程

撞上電子 ? 2024-01-18 08:00 ? 次閱讀

一,基礎概念在我看來Socket就相當于API,就是函數接口,我們使用Socket就可以在不清楚底層原理的基礎上進行通信,即Socket會幫助我們處理好網絡的Ip地址等。下圖就清晰地展示了Socket的位置,作為用戶層與其他層的交互媒介。

a5be4792-b594-11ee-aa22-92fbcf53809c.png

LWIP實現Socket需要操作系統的幫助,如下圖所示。

a5c23e38-b594-11ee-aa22-92fbcf53809c.png

二,Socket編程的基礎知識

1.大端模式,小端模式

(1)大端模式就是尾端為高地址(先取低地址)

a5d9f3d4-b594-11ee-aa22-92fbcf53809c.png

(2)小端模式就是尾端為低地址(先取高地址)

a5de32c8-b594-11ee-aa22-92fbcf53809c.png

2.地址轉換接口

Socket編程中會有特定的函數來處理IP地址,我們用戶可以直接省略判斷ip地址是大端還是小端,這個轉換接口會自己判斷地址存儲方式并轉換。

1.htonl與htons區別《大小端》host —— to —— net——l :主機字節變為網絡字節,字節為大端模式host —— to —— net——s :主機字節變為網絡字節,字節為小端模式
2.htonl與ntohl區別《主轉網,網轉主》u_long b = htonl(a);//將主機字節的unsigned long轉為網絡字節順序(32位)u_long b = ntohl(a);//將網絡字節順序(32位)轉為主機字節//def.h 地址轉換接口uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t ntohs(uint16_t netshort);

3.IP地址轉換

(1)socket接口

//socket.hint inet_pton(int af, const char *src, void *dst);const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);

(2)LWIP接口

//inet.h#define inet_addr(cp) ipaddr_addr(cp)#define inet_aton(cp, addr) ip4addr_aton(cp, (ip4_addr_t*)addr)#define inet_ntoa(addr) ip4addr_ntoa((const ip4_addr_t*)&(addr))#define inet_ntoa_r(addr, buf, buflen) ip4addr_ntoa_r((const ip4_addr_t*)&(addr), buf, buflen)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2878

    文章

    42064

    瀏覽量

    360435
  • 編程
    +關注

    關注

    88

    文章

    3450

    瀏覽量

    92703
  • LwIP
    +關注

    關注

    1

    文章

    82

    瀏覽量

    26719
收藏 人收藏

    評論

    相關推薦

    4G聯網開關求助

    阿里云聯網平臺 合宙模塊780E 724 或者移遠4G模塊開發一款聯網開關,有的APP ,可以直接做固件或者固件帶硬件。有可以做的大師可以聯系我有樣品參考
    發表于 05-19 15:28

    RTOS+LwIP Socket不工作的原因?

    _Server(void const * argument) { /* LwIP 初始化棧 */ MX_LWIP_Init(); for(;;) { Tcp_Socket_Serve_Init(); osDelay
    發表于 04-30 07:20

    STM32H743ZIT6調試FreeRTOS + LWIP,有什么辦法能將socket設置為非堵塞方式?

    大家好, 我們現在用STM32H743ZIT6,在調試FreeRTOS + LWIP,發現SOCKET為堵塞方式,有什么辦法能將socket設置為非堵塞方式?用setsockopt函數設置,已經測試過了,不起作用;大神們幫看下,
    發表于 04-26 08:14

    使用FreeRTOS+LwIP+emWin,LwIP使用socket-udp功能,收發數據丟包非常嚴重是怎么回事???

    請教下使用FreeRTOS+LwIP+emWin,LwIP使用socket-udp功能,收發數據丟包非常非常嚴重,是怎么回事啊 ? 單片機使用 F7x 相關宏定義如下: #define
    發表于 04-24 07:28

    使用lwip socket udp功能,開發板為客戶端時不能夠接收服務器端發送過來的數據 ?

    請教下,使用 lwip socket udp 功能,開發板為客戶端時不能夠接收服務器端發送過來的數據 ? 1,如果開發板為 服務器端,收發都可以 2,如果開發板為 客戶端,不能夠接收服務器端發送
    發表于 04-16 06:01

    lwip開發板聯網ping不通是怎么回事?

    求大佬幫助!eth外設的lwip功能聯網測試,發現電腦與開發版直連的時候通訊沒有問題,而且TCP和UDP測試沒有問題,但是電腦和開發版通過外部路由器連接時,開發板PING不通
    發表于 04-03 06:51

    lwip可以開幾個socket

    的內存和處理器資源,以適應資源受限的嵌入式應用場景。 在lwIP中,socket是一種用于進行網絡通信的抽象概念。它提供了一種簡化的編程接口,使得應用程序可以通過網絡發送和接收數據。lwIP
    的頭像 發表于 01-09 14:05 ?866次閱讀

    常見的socket三種類型

    常見的socket三種類型? Socket是計算機網絡中常用的通信機制,在網絡編程中起到了非常重要的作用。Socket可以分為三種類型:流套接字(Stream
    的頭像 發表于 12-08 11:18 ?1865次閱讀

    rt-thread源碼分析之socket抽象層和網卡注冊

    如圖所示,rt-thread的網絡分為應用層、sal_socket、netdev、協議簇(at、lwip、wiznet)、網卡驅動五層。
    的頭像 發表于 11-13 12:43 ?457次閱讀

    socket、端口、進程的關系

    特定的TCP端口。 而 socket 呢,是網絡編程中的概念,對TCP/IP協議進行了抽象和實現,并為應用層提供接口。這里的應用A,可以是FTP應用,它屬于用戶進程,通過socket與內核中的網絡協議棧進行交互。
    的頭像 發表于 11-10 15:02 ?331次閱讀
    <b class='flag-5'>socket</b>、端口、進程的關系

    Socket 網絡編程框架介紹

    Socket 網絡編程框架 Socket(套接字)是一個網絡編程概念,描述了一個通信端點(Endpoint),用于建立網絡連接(Connection)并傳輸數據。 Linux Kern
    的頭像 發表于 11-09 14:19 ?432次閱讀
    <b class='flag-5'>Socket</b> 網絡<b class='flag-5'>編程</b>框架介紹

    聯網專業前景怎么樣?

    聯網專業前景怎么樣? 聯網專業在當今技術發展迅速的背景下具有廣闊的前景。以下是聯網專業的
    發表于 10-20 09:48

    基于飛騰派的邊緣聯網

    本帖最后由 zhh763984017 于 2023-9-21 16:53 編輯 今天給大家分享一個飛騰派的一個應用場景——邊緣聯網關。邊緣聯網關可以連接各種
    發表于 09-21 16:50

    電池聯網應用MCU都用哪些型號的?

    電池聯網應用MCU都用哪些型號的
    發表于 09-20 07:57

    聯網簡介

    聯網(IoT)是由物理設備、車輛等組成的網絡,家用電器和嵌入有電子設備、軟件、傳感器等的其他物品,致動器,以及使這些物體能夠連接和交換數據。
    發表于 09-11 07:18
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>