NETCONN_UDPLITE : NETCONN_UDP,event_callback); #define netconn_new_with_callback(t, c)netconn_new_with_proto_and_callback(t, 0, c) 简略实现如下: struct netconn* netconn_new_with_proto_and_callback(enumnetconn_type t, u8_t proto, netconn_callback callback) { structnetconn *con...
} else #endif /* LWIP_CALLBACK_API || TCP_LISTEN_BACKLOG */ { tcp_backlog_accepted(pcb); //无操作 //回调连接建立函数 TCP_EVENT_ACCEPT(pcb->listener, pcb, pcb->callback_arg, ERR_OK, err); } //如果回调函数返回错误,或者listen pcb已经被关闭,则终止tcp if (err != ERR_OK) { if...
{ LWIP_ASSERT("invalid socket state for recv callback", pcb->state != LISTEN); pcb->recv = recv; } 1. 2. 3. 4. 5. 在程序的搜索pcb->recv,可得出调用的地方: #define TCP_EVENT_RECV(pcb,p,err,ret) \ do { \ if((pcb)->recv != NULL) { \ (ret) = (pcb)->recv((pcb)->...
楼上的意思就是说它是回调函数了。协议栈已经帮我们定义了宏LWIP_CALLBACK_API 下的种种消息处理函数...
u16_trcvevent; /**numberoftimesdatawasreceived,setbyevent_callback(), testedbyselect*/ u16_tsendevent; /**socketflags(currently,onlyusedforO_NONBLOCK)*/ u16_tflags; /**lasterrorthatoccurredonthissocket*/ interr; }; 好~协协先不个构它管协~接着看下get_socket函的协协数【也是在src\api\...
#if LWIP_CALLBACK_API /* 当数据发送成功后被调用 */ tcp_sent_fn sent; /* 接收数据完成后被调用 */ tcp_recv_fn recv; /* 建立连接后被调用 */ tcp_connected_fn connected; /* 该函数被内核周期调用 */ tcp_poll_fn poll; /* 发送错误时候被调用 */ ...
1.LWIP_NETIF_LINK_CALLBACK用于使能网络连接状态变化回调函数的调用。使能后ethernetif.c文件中的void ...
//#define LWIP_EVENT_API 0 //#define LWIP_CALLBACK_API 1 //*** // // --- Pbuf options --- // //*** #define PBUF_LINK_HLEN 16 // default is 14 改成16是因为在Stellaris系列中,FIFO中的
//每个时间内收到的数据量,使用event_callback()函数设置,测试接收和选中功能 s16_t rcvevent; //每个时间内的数据应答(发送buff为空),使用event_callback()函数设置,测试选中 u16_t sendevent; //这个socket发送了错误,使用event_callback()函数设置,测试选中 u16_t errevent; //在这个socket最后发生的错误...
TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_RST); // 若注册了回调函数// 则调用该函数通知上层 tcp_pcb_remove(&tcp_active_pcbs, pcb); // 将控制块从链表中删除 memp_free(MEMP_TCP_PCB, pcb); // 释放控制块内存空间 } else if (recv_flags & TF_CLOSED) { // TF_CLOSED表示服务...