{ u8_t shut; #if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER u32_t time_started; #else /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ u8_t polls_left; #endif /* LWIP_SO_SNDTIMEO || LWIP_SO_LINGER */ } sd; #endif /* LWIP_TCP */ #if LWIP_IGMP || (LWIP_IPV6 && LWIP_IPV6_MLD...
LWIP_SO_SNDTIMEO u32_t time_started; #endif /* LWIP_SO_SNDTIMEO */ } w; /* used for lwip_netconn_do_recv */ struct { size_t len; } r; #if LWIP_TCP /* used for lwip_netconn_do_close (/shutdown) */ struct { u8_t shut; #if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER u32...
#if LWIP_SO_SNDTIMEO u32_t time_started; #endif /* LWIP_SO_SNDTIMEO */ } w; /** read*/ struct { u32_t len; } r; #if LWIP_TCP /* close shutdown */ struct { u8_t shut; #if LWIP_SO_SNDTIMEO || LWIP_SO_LINGER u32_t time_started; #else /* LWIP_SO_SNDTIMEO || L...
29//这一次,tcp segment对应的client-server专属pcb能够在 tcp_active_pcbs链表里找到。30for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {31LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state !=CLOSED);32LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT...
SO_ERROR 获得套接字错误 int SO_KEEPALIVE 保持连接 int SO_LINGER 延迟关闭连接 struct linger SO_OOBINLINE 带外数据放入正常数据流 int SO_RCVBUF 接收缓冲区大小 int SO_SNDBUF 发送缓冲区大小 int SO_RCVLOWAT 接收缓冲区下限 int SO_SNDLOWAT 发送缓冲区下限 int ...
/* @todo: When implementing SO_LINGER, this must be changed somehow: 00230 If SOF_LINGER is set, the data should be sent and acked before close returns.00231 This can only be valid for sequential APIs, not for the raw API. */ ...
发送回调函数。当TCP收到更多ACK,发送缓冲区可用空间增大了,就会调用当前回调函数。主要是唤醒阻塞等待连接关闭或数据发送的应用程序线程。检查和通知接口层(netconn、socket),有更多缓冲空间了,如果有数据,可以发过来。static err_t sent_tcp (void *arg, struct tcp_pcb *pcb,u16_t len){ struct netconn...
#endif /* LWIP_SO_LINGER */ /* 包含更多的netconn-internal状态。参考NETCONN_FLAG_x宏 */ u8_t flags;#if LWIP_TCP /* 当调用netconn_write()函数发送的数据不适合发送到缓冲区时,数据会暂时存储在current_msg中,等待数据合适的时候进行发送。 */ struct api_msg *current_msg;#endif /* LWIP_...
#define SO_LINGER 0x0080 /* 如果数据存在,则在关闭时逗留 */ #define SO_DONTLINGER ((int)(~...
60 #if LWIP_CALLBACK_API 61 npcb->accept = pcb->accept; 62 #endif /* LWIP_CALLBACK_API */ 63 /* inherit socket options */ 64 npcb->so_options = pcb->so_options & (SOF_DEBUG|SOF_DONTROUTE|SOF_KEEPALIVE|SOF_OOBINLINE|SOF_LINGER); 65 /* Register the new PCB so that we can...