打印

uip移植 问题

[复制链接]
4577|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
西北地CBD|  楼主 | 2012-12-6 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是关于协议栈的一个回调函数,不知道具体完成什么功能??
void tcp_demo_appcall(void)
{
        if (uip_aborted())
        {
                USART_OUT(USART1,"uip_aborted!\r\n");
                aborted();
        }

        if (uip_timedout())
        {
                USART_OUT(USART1,"uip_timedout!\r\n");
                timedout();
        }

        if (uip_closed())
        {
                USART_OUT(USART1,"uip_closed!\r\n");
                closed();
                TCP_S_Link=2;
        }

        if (uip_connected())
        {
                USART_OUT(USART1,"uip_connected!\r\n");
                TCP_S_Link=1;
                connected();
        }

        if (uip_acked())
        {
                acked();
        }

        /* 接收到一个新的TCP数据包,准备需要发送数据 */
        if (uip_newdata())
        {
                newdata();
        }

        /* 当需要重发、新数据到达、数据包送达、连接建立时,通知uip发送数据 */
        if (uip_rexmit() ||        uip_newdata() || uip_acked() ||        uip_connected() || uip_poll())
        {
                senddata();
        }
}

相关帖子

沙发
香如故| | 2012-12-6 17:44 | 只看该作者
用户需将应用层入口程序作为接口提供给uIP协议栈,定义为宏UIP_APPCALL()。uIP在接收到底层传来的数据包后,若需要送上层应用程序处理,它就调用UIP_APPCALL()。即tcp_demo_appcall(void) uIP提供给应用程序的接口函数按功能描述如下
1 接收数据接口:应用程序利用uip_newdata()函数检测是否有新数据到达。全局变量uip_appdata指针指向实际数据。数据的大小通过uip_datalen()函数获得。
2 发送数据接口:应用程序通过使用 uIP 函数 uip_send()发送 数据。uip_send()函数采用两个参数;一个指针指向发送数据起始 地址,另一个指明数据的长度。 3 重发数据接口:应用程序通过测试函数 uip_rexmit()来判断是 否需要重发数据,如果需要重发则调用 uip_send()函数重发数据 包。
4 关闭连接接口:应用程序通过调用 uip_close()函数关闭当前 连接。
5 报告错误接口:uIP 提供错误报告函数检测连接中出现的错误。
应用程序可以使用两个测试函数 uip_aborted()和 uip_timedout() 去测试那些错误情况。
6 轮询接口:当连接空闲时,uIP 会周期性地轮询应用程序,判断 是否有数据要发送。应用程序使用测试函数 uip_poll()去检查它是 否被轮询过。
7 监听端口接口:uIP 维持一个监听知名 TCP 端口的列表。通过 uip_listen()函数,一个新的监听端口打开并添加到监听列表中。 当在一个监听端口上接收到一个新的连接请求时,uIP 产生一个新的 连接和调用该端口对应的应用程序。
8 打开连接接口:在 uIP 里面通过使用 uip_connect()函数打开 一个新连接。这个函数打开一个新连接到指定的 IP 地址和端口,返 回一个新连接的指针到 uip_conn 结构。如果没有空余的连接槽,函 数返回空值。
9 数据流控制接口:uIP 提供函数 uip_stop()和 uip_restart() 用于 TCP 连接的数据流控制。应用程序可以通过函数 uip_stop() 停止远程主机发送数据。当应用程序准备好接收更多数据,调用函数 uip_restart()通知远程终端再次发送数据。函数 uip_stopped() 可以用于检查当前连接是否停止。
ui p. uIP 协议栈

使用特权

评论回复
板凳
vans88| | 2014-5-18 10:52 | 只看该作者
大家好  uip协议栈重发超时 该怎么处理


UIP_RTO  值的大小 和重发的关系 是什么

uip 原码中 默认tcp超时检测为500ms 如果修改为50ms UIP_RTO 该如何做修改呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

0

粉丝