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)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2939

    文章

    47316

    浏览量

    407654
  • 编程
    +关注

    关注

    90

    文章

    3707

    浏览量

    96744
  • LwIP
    +关注

    关注

    2

    文章

    89

    浏览量

    29253
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    socket是什么

    特定的IP地址和端口上等待客户端连接,客户端则通过Socket连接到服务器程序并进行通信。通过Socket技术,可以实现不同操作系统和编程语言之间的通信,使得网络应用程序的开发更加灵活和方便
    发表于 12-03 08:27

    学习联网怎么入门?

    随着联网技术的不断发展,越来越多的人开始关注学习这一领域。但是对于初学者来说,联网似乎是一个庞杂的概念,学习起来很困难。因此,从哪里开始学习
    发表于 10-14 10:34

    学习联网可以做什么工作?

    学习联网专业后,你可以从事多种与联网相关的工作。联网是一个非常新颖和实用的领域,各种应用场
    发表于 10-11 16:40

    请问什么是联网智库?

    什么是联网智库?
    发表于 08-07 06:45

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudio 软件作为工业级零代码开发平台,其内置的 TCP/IP
    的头像 发表于 08-03 22:20 895次阅读
    GraniStudio : TCP/IP(<b class='flag-5'>Socket</b>)协议深度剖析

    联网蓝牙模块有哪些优势?

    随着联网技术的不断发展,蓝牙模块作为联网的重要组成部分,其应用越来越广泛。那么,联网蓝牙模
    发表于 06-28 21:49

    PLC数据采集全自动薄膜横切机联网解决方案

    PLC数据采集全自动薄膜横切机联网解决方案
    的头像 发表于 06-20 14:25 541次阅读
    PLC数据采集<b class='flag-5'>之</b>全自动薄膜横切机<b class='flag-5'>物</b><b class='flag-5'>联网</b>解决方案

    联网的应用范围有哪些?

    联网,简单来说,就是“万相连的互联网”。它以互联网为基石,将用户端延伸至物品与物品之间,实现信息的交换与通信。打个比方,你的智能手表能实
    发表于 06-16 16:01

    联网未来发展趋势如何?

    近年来,联网行业以其惊人的增长速度和无限的潜力成为了全球科技界的焦点。它正在改变我们的生活方式、商业模式和社会运转方式。那么,联网行业的未来发展趋势将会是怎样的呢?让我们一同探寻其
    发表于 06-09 15:25

    联网工程师为什么要学Linux?

    依赖Linux的安全启动机制。 三、职业需求与就业优势 1)岗位技能硬性要求 企业招聘中,约70%的联网开发岗位明确要求具备Linux系统编程、内核移植或驱动开发经验。例如,设备端固件开发
    发表于 05-26 10:32

    智多晶LWIP网络通信系统介绍

    联网蓬勃兴起的当下,嵌入式设备的网络通信能力如同为其插上了腾飞的翅膀,使其能够自由穿梭于信息的浩瀚海洋。而 LWIP,宛如一位身姿矫健的轻骑兵,在资源有限的嵌入式系统中飞驰,轻松完成各种复杂的网络通信任务。西安智多晶微电子有
    的头像 发表于 04-10 16:27 1662次阅读
    智多晶<b class='flag-5'>LWIP</b>网络通信系统介绍

    为什么选择蜂窝联网

    在为您的联网(IoT)应用评估最合适的低功耗广域网(LPWAN)技术时,除了考虑技术指标外,还必须考虑各种因素,因为技术指标本身可能与实际性能大相径庭。与 LoRaWAN、Sigfox
    发表于 03-17 11:42

    STM32H7使用LWIP通信,数据量过大会卡死怎么解决?

    (\"连接服务器失败n\");lwip_close(client_socket);client_socket = -1;is_connected = false; } else
    发表于 03-11 06:43

    联网编程中央控制主机的主要功能描述

    联网编程中央控制主机GF-MAXCC确实是一种功能强大、智能化的设备,它能够在联网系统中发挥关键作用,集中管理和控制各种设备。
    的头像 发表于 01-24 14:55 595次阅读

    联网就业有哪些高薪岗位?

    联网就业有哪些高薪岗位? 联网行业迎来了全面爆发式的发展,众多高薪岗位吸引着人们的目光。联网
    发表于 01-10 16:47