当前位置: 首页 > news >正文

宁波人才网济南seo快速霸屏

宁波人才网,济南seo快速霸屏,网站开发项目流程书,广东顺德网站建设1. NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制, 对网络连接进行了抽象,使用同一的接口完成UDP和TCP连接。 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 首先会调用netconn_new创建一个pcb控制块,其实际是一个宏定…

1. NETCONN接口简介

NETCONN API 使用了操作系统的 IPC 机制, 对网络连接进行了抽象,使用同一的接口完成UDP和TCP连接。
NETCONN调用流程
NETCONN API接口是在RAW接口基础上延申出来的一套API接口

NETCONN调用流程
首先会调用netconn_new创建一个pcb控制块,其实际是一个宏定义,调用了netconn_new_with_proto_and_callback函数;其就是先定义了一个netconn的结构体conn,然后通过netconn_alloc申请内存,并通过netconn_apimsg构建一个API消息;

netconn_apimsg,在里面就是调用tcpip_send_msg_wait_sem;这个函数中,显示构建了一系列消息的初始化,然后调用sys_mbox_post发送邮箱;

当然以上所述,是需要通过宏定义修改才能实现的,lwIP内核默认是直接调用RAW,而不需要API消息;如果是默认方式,那么就会直接调用,也就是直接通过lwip_netconn_do_newconn函数执行;该函数中构建了一个api_msg结构体的指针msg,然后只要msg->conn->pcb.tcp为空,就调用peb_new创建内存;这其中会根据宏定义,判断是UDP还是TCP

UDP就会调用udp_new_ip_type,里面调用udp_new进行创建pcb控制块;创建完成后,会调用udp_recv构建udp的recv回调函数,这里的回到函数就不需要像RAW接口一样自己编写了;lwIP已经实现了recv_udp,里面创建流程跟之前讲的很像,调用memp_malloc创建内存给netbuf结构体buf,然后初始化buf的参数,比如p和ptr指针,还有IP地址和端口号;最重要的就是调用sys_mbox_trypost发送邮箱给tcp线程,然后会把当前pbuf的指针发送出去

2. NETCONN实现原理

NETCONN控制块

netconn控制块
这里比较好用的是union这个联合体,在里面定义了四个控制块分别是IP、TCP、UDP以及RAW控制块,这里是通过union选定了之后,其他的结构体参数就会自动连接到union选定的结构体之中,非常方便!

netconn中定义了netconn_type连接类型;netconn_state表示当前的连接状态;然后union pcb定义了四种控制块选其一;err_t last_err表示最新错误;sys_sem_t op_completed表示API同步的信号量以及sys_mbox_t recvmbox表示接收数据的邮箱,等;

NETCONN收发的数据管理

收发的数据结构体
定义了netbuf的结构体;包含pbuf类型的p和ptiji发送方IP地址ip_addr_t addr;以及发送方端口号u16_t port;

其中,p和ptr都指向pbuf链表,不同的是,p一直只想pbuf链表的第一个pbuf结构,而ptr可能指向链表的其他位置netbuf_next()和netbuf_first()操作ptr字段

addr和port来记录数据发送方的IP地址和端口号,netbuf_fromaddr和netbuf_fromport这两个宏定义来返回addr和port字段

之前就有过解析,在通过NETCONN创建udp的控制块中,会有recv_udp函数来进行udp_recv的回到函数的编写,是lwIP内核实现的;recv_udp中,会构造netbuf结构体的指针buf,memp_malloc之后,buf的p和ptr指针都赋值p,addr和port也是给定相应的Ip地址和端口号然后通过sys_mbox_trypost把buf发送出去

接收数据,则是调用netconn_recv完成;而该函数最后,如果是调用了UDP协议,会return netconn_recv_data函数;这个函数中,会调用sys_arch_mbox_fetch接收消息,接受的就是buf这个pbuf数据;接受到了之后,会把他传入recvbuf之中;然后遍历pbuf链表并调用memcpy进行拷贝,获取udp数据到数据缓冲区g_lwip_demo_recvbuf之中。

针对netconn结构体中,需要注意宏定义LWIP_SO_SNDTIMEO,这个宏定义之0,则recv和send函数都是阻塞状态;也就是说接收和发送在同一任务重,由超时事件来控制,一般都不这么使用,会影响效率,所以这个宏置1

3. NETCONN实现原理

NETCONN示意图
netconn_alloc创建了netconn结构体和邮箱;调用了udp_new和udp_recv完成了udp控制块以及rcv的实现;netconn_bind把IP地址和端口号传入netconn,然后调用netconn_connect进行连接;数据会先进入udp控制块,进入pbuf后借由recv_udp给到发送邮箱recvnbox,发送出去后在通过接收邮箱recvmbox接收到

邮箱传输的是pbuf的地址,pbuf由netbuf管理!

NETCONN与RAW区别

NETCONN与RAW接口比对
NETCONN就类似于STM32的标准库开发,而RAW接口类似于STM32寄存器开发

3. NETCONN相关函数

相关函数

总结

NETCONN就是对RAW接口进行初步封装,能够省去自己实现五个回调函数的步骤,更好的进行抽象,帮助我们开发以太网的连接。

http://www.hengruixuexiao.com/news/41113.html

相关文章:

  • 做网站的股哥长沙百度推广优化排名
  • 做色情网站盈利会怎么样百度学术论文查重官网
  • 网站开发制作学徒app开发工具哪个好
  • 固镇建设局网站商丘seo博客
  • 招商网站建设长沙网站seo哪家公司好
  • 北京顺义去哪找做网站的企业产品营销策划推广
  • 游戏发号网站源码百度竞价推广怎么做效果好
  • 做邮轮上哪个网站订票好免费单页网站在线制作
  • wordpress 主题 mnews优化营商环境评价
  • 网络推广培训网网站查询seo
  • 淘宝网站建设策划书百度搜索指数排行
  • b2b网站策划书哈尔滨最新
  • B2B外贸网站模板google chrome 网络浏览器
  • 网络营销的方法和手段seo快速排名优化
  • 政府网站模板php今天头条新闻100条
  • HTTPS网站做CDN站长工具麻豆
  • 网站开发的五个阶段企业网站有哪些
  • 做网站定金是多少网络推广培训班哪家好
  • 体育网站建设需求手机优化大师怎么退款
  • 学做网站要学什么东西seo网站优化培训找哪些
  • oa办公系统是什么意思武汉排名seo公司
  • vs2013可以做网站么ciliba最佳磁力搜索引擎
  • 企业专业网站设计公成人馆店精准引流怎么推广
  • 大众服务器网站搜索引擎优化seo多少钱
  • wordpress任务宁波seo网络推广咨询价格
  • 网站注册系统怎么做电子商务网站建设与维护
  • 专业做网站厂家东莞海外网络推广
  • 互联网行业排行榜如何优化推广中的关键词
  • 建设网站分析百度热搜广告设计公司
  • wordpress badages深圳网站优化公司