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)

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

    关注

    2903

    文章

    44240

    浏览量

    371024
  • 编程
    +关注

    关注

    88

    文章

    3587

    浏览量

    93578
  • LwIP
    +关注

    关注

    2

    文章

    85

    浏览量

    27082
收藏 人收藏

    评论

    相关推荐

    socket 和 UDP 协议的对比

    在现代互联网技术中,数据传输是核心功能之一。为了实现这一功能,我们依赖于各种通信协议和接口。Socket 和 UDP 是两种广泛使用的网络通信技术,它们在实现网络通信方面各有特点和用途
    的头像 发表于 11-12 14:28 172次阅读

    socket联网中的应用

    联网(IoT)是一个由互联网、传统电信网、传感器网络等多种网络组成的网络,它允许物体与物体、物体与人、人与人之间的智能互联和数据交换。 1. Socket基础
    的头像 发表于 11-12 14:19 319次阅读

    socket 多线程编程实现方法

    在现代网络编程中,多线程技术被广泛应用于提高服务器的并发处理能力。Socket编程是网络通信的基础,而将多线程技术应用于Socket编程,可
    的头像 发表于 11-12 14:16 194次阅读

    socket 编程基础入门

    Socket 编程基础入门 在计算机网络中,Socket 是一个抽象层,它将网络通信的细节隐藏起来,为开发者提供了一个简单的接口来发送和接收数据。Socket
    的头像 发表于 11-12 14:03 159次阅读

    socket联网中的应用案例

    联网(IoT)是一个由互联网、传统电信网、传感器网络等多种网络组成的网络,它允许物体与物体、物体与人、人与人之间的智能化交互。在这个过程中,Socket(套接字)作为网络通信的基本接
    的头像 发表于 11-04 09:17 274次阅读

    C语言中的socket编程基础

    Socket编程简介 Socket是一种通信机制,允许程序之间进行通信。在C语言中,socket编程是网络
    的头像 发表于 11-01 16:51 233次阅读

    socket编程中的阻塞与非阻塞

    在网络编程中, socket 是一个非常重要的概念,它提供了一个抽象层,使得开发者可以不必关心底层的网络通信细节。 socket 编程中的阻塞与非阻塞模式是两种不同的操作方式,它们对程
    的头像 发表于 11-01 16:13 127次阅读

    什么是socket编程 socket与tcp/ip协议的关系

    什么是Socket编程 Socket编程是一种网络编程技术,它允许程序之间进行通信。在计算机科学中,so
    的头像 发表于 11-01 16:01 140次阅读

    联网4G CAT1产品的Socket通讯研发测试方案

    01 联网行业中存在问题 研发阶段,4G CAT1产品Socket通信测试. 02 该问题带来的危害及影响 Socket是应用层与TCP/IP协议族通信的中间软件抽象层。在设计模式中
    的头像 发表于 09-29 17:21 350次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>4G CAT1产品的<b class='flag-5'>Socket</b>通讯研发测试方案

    简述socket编程中的常用函数

    Socket编程是一种基于TCP/IP协议的网络编程技术,它允许应用程序通过网络进行通信。在Socket编程中,有许多常用的函数,它们用于创
    的头像 发表于 08-16 10:49 276次阅读

    如何理解socket编程接口

    Socket编程接口是一种网络编程的基本概念,它提供了一种在不同计算机之间进行通信的方法。 Socket编程接口的基本概念 1.1
    的头像 发表于 08-16 10:48 350次阅读

    RTOS SDK中的socket怎么正确使用?

    sockaddr_in(我已包含头文件sockets.h)。在sockets.h中发现要定义宏 LWIP_SOCKET 为真,才能让该结构体定义生效,但在lwipopts.h中定义该宏以后还是不行,同时发现似乎SDK中lwip头文件包含路径有些问题。 请问rtos s
    发表于 07-22 07:05

    基于MM32F5270的Ethernet实现LwIP协议栈移植

    LwIP是轻量化的TCP/IP协议,由瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。LwIP具有高度可移植性、代码开源,提供了三种编程接口(API):RAW API、NETCON
    的头像 发表于 06-21 10:28 1087次阅读
    基于MM32F5270的Ethernet实现<b class='flag-5'>LwIP</b>协议栈移植

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据?

    请问使用lwip创建socket,该如何做到非阻塞的接收发送数据?
    发表于 06-19 06:02

    lwip可以开几个socket

    的内存和处理器资源,以适应资源受限的嵌入式应用场景。 在lwIP中,socket是一种用于进行网络通信的抽象概念。它提供了一种简化的编程接口,使得应用程序可以通过网络发送和接收数据。lwIP
    的头像 发表于 01-09 14:05 1938次阅读