lwIP raw API

简介

lwIP提供了两套API:

1.底层的基于回调(callback)的raw API

2.高层的顺序模型的API(类似BSD socket)

    顺序模型的API为普通的顺序程序提供使用协议栈的API,和BSD风格的API很相似,也是基于阻塞的open-read-write-close模式。鉴于TCP/IP协议栈本身就基于时间的。所以TCP/IP代码和应用程序的代码必须在不同的线程中。

    而raw API可以让应用程序和TCP/IP协议栈代码结合的更紧密。程序的执行也是基于事件的,使用回调函数的机制。这种方式TCP/IP代码和应用代码运行在同一个线程中。

    实际上,顺序模型的API也是基于raw API实现的。

回调

    程序的执行是基于回调函数的,回调函数从传入的参数获取当前连接的状态。为回调函数设置连接状态参数的函数如下:

void tcp_arg(struct tcp_pcb *pcb, void *arg) ;

pcb是当前TCP连接的控制块,arg是将会传给回调函数的参数。

建立TCP连接

    TCP连接建立的方法和BSD socket很相似,通过tcp_new函数可以创建一个新的TCP标识(在raw API中是PCB这个结构--protocol control block)。PCB可以设置成监听一个连接或者明确地连接到一个主机。

     struct tcp_pcb *tcp_new(void);

  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值