物联网LWIP之socket编程

一,基础概念在我看来socket就相当于api,就是函数接口,我们使用socket就可以在不清楚底层原理的基础上进行通信,即socket会帮助我们处理好网络的ip地址等。下图就清晰地展示了socket的位置,作为用户层与其他层的交互媒介。
lwip实现socket需要操作系统的帮助,如下图所示。
二,socket编程的基础知识
1.大端模式,小端模式
(1)大端模式就是尾端为高地址(先取低地址)
(2)小端模式就是尾端为低地址(先取高地址)
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)

数据存储厂商NetApp宣布推出Project Astra
地平线机器人上市了吗?地平线机器人目前估值多少
国内RISC-V内核MCU厂商
用于电芯制造的超级箱体质量门
荣耀Note 10:搭载了麒麟970,7月11日销量就已经突破300万台
物联网LWIP之socket编程
余承东在微博上表示,华为消费者业务已经发展到一个全新的历史阶段
还得靠ChatGPT?无线音频芯片的下一个市场爆点
什么是登录和登录帐户
AnDAPT 发布新的可覆盖多种拓扑结构的 PMIC 产品组合
innodb究竟是如何存数据的
台湾源鲜集团董事长蔡文清:台植物工厂产品将营销到北欧各国,未来将开发北欧市场
华为Mate10什么时候上市最新消息:华为大杀招!华为Mate10全面对垒iPhone8,孰强孰弱?
Komatsu 138US发动机抖动的案例分析
计算机视觉在工业领域的一个实践
电瓶充电器原理图 锂电池和铅酸电池组成的电瓶原理解析
基于电能反馈式电子负载技术应用于航空电源测试中
小马智行首获T3级别牌照,可进行自动驾驶实测
玻璃基集成光量子芯片的研究进展
使用因特尔Optane存储器来加速计算机硬盘驱动器