怎么用 Netio测试
工程中加入 \net\apps\netio.c在初始化中netio_init()命令,然后进行测试吗? 如下:
intmain (void)
{
System_Setup();
LwIP_Init();
netio_init();
while (1)
{
System_Periodic_Handle();
}
}
可是我只能测到有一个发送包的结果,再没有了,如下:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_601697DGBPGR.jpg
(原文件名:CESHI.jpg)
不应该是连续的吗,为什么我的只有一个结果?? 先自己顶一下,版主回复一下,谢谢 忘了问一下,这个SERVER 还是CLIENT没关系吧,我做的是SERVER,跟踪了一下,发送命令后会进入发,收程序,以后再也进不了了,
void netio_init(void)
{
struct tcp_pcb *pcb;
pcb = tcp_new();
tcp_bind(pcb, IP_ADDR_ANY, 18767);
pcb = tcp_listen(pcb);
tcp_accept(pcb, netio_accept);
}
static err_t
netio_accept(void *arg, struct tcp_pcb *pcb, err_t err)
{
struct netio_state * ns;
LWIP_UNUSED_ARG(err);
ns = mem_malloc(sizeof(struct netio_state));
if(ns == NULL){
return ERR_MEM;
}
ns->state = NETIO_STATE_WAIT_FOR_CMD;
ns->data_len = 0;
ns->cmd = 0;
ns->cntr = 0;
ns->buf_pos = 0;
#if NETIO_USE_STATIC_BUF == 1
ns->buf_ptr = netio_buf;
#else
ns->buf_ptr = mem_malloc(NETIO_BUF_SIZE);
if(ns->buf_ptr == NULL){
mem_free(ns);
return ERR_MEM;
}
#endif
ns->buf_ptr = 0;
tcp_arg(pcb, ns);
tcp_sent(pcb, netio_sent);
tcp_recv(pcb, netio_recv);
tcp_poll(pcb, netio_poll, 4); /* every 2 seconds */
return ERR_OK;
}
不是有tcp_poll吗,为什么不通循环呢?谢谢 你的应该不是RT-Thread上的lwip吧,如果是RT-Thread上的lwip,只需要用finsh shell启动netio就可以做测试了。 回复【3楼】ffxz
-----------------------------------------------------------------------
不是,在UCOSII上的LWIP,不过我很想测一下我的LWIP速度,在本版中查到了一些相关信息,但是不知为什么,我的就是出现问题,所以借贵宝地问问,不好意思,版主大人,占用了一下贵宝地,不过我觉得只是RTOS不一样,原理应该差不多,所以楼主麻烦解答一下吧,小弟感激不尽!! 回复【3楼】ffxz
-----------------------------------------------------------------------
不过我这个是裸LWIP的测试,开发环境是IAR,并没有任何操作系统,当然我希望最后带RTOS,,所以楼主麻烦解答一下吧,小弟感激不尽!! 回复【5楼】woshiwowo
-----------------------------------------------------------------------
你必须首先确保lwip运行正常,tcp发送和接收都没有问题。 回复【6楼】shaolin
-----------------------------------------------------------------------
当工程中加入 \net\apps\http.c 主程序如下:
intmain (void)
{
System_Setup();
LwIP_Init();
httpd_init();
while (1)
{
System_Periodic_Handle();
}
}
我lwip运行正常,tcp发送和接收都没有问题。
我是不明白netio是怎么工作的,命令敲入后怎么让它连续收发?由我图中看出发完后好像没有进入接收,不知道为什么??大牛们帮帮我解决一下! 回复【楼主位】woshiwowo
-----------------------------------------------------------------------
楼主,不知你的测速可以了没有呢,我用的是ucos+lwip,建了一个任务,在任务里面,将tcpip的各项初始化,然后再调用netio_init(),然后是死循环。如下:
sem = sys_sem_new(0);
tcpip_init(tcpip_init_done, &sem);
sys_sem_wait(sem);
sys_sem_free(sem);
IP4_ADDR(&gw, 192,168,0,1);
IP4_ADDR(&ipaddr, 192,168,0,207);
IP4_ADDR(&netmask, 255,255,255,0);
netif_set_default(netif_add(&loop_netif, &ipaddr, &netmask, &gw, NULL, ethernetif_init, tcpip_input));
netif_set_up(&loop_netif);
netio_init();
while(1);
不知道这样操作是否正确呢?但是我用PC机的程序的时候,只能够出现上面的
NETIO - Network Throughput Benchmark, Version 1.31
(C) 1997-2008 Kai Uwe Rommel
下面就没显示了,怎么回事呢? 楼主问题解决没,我也是裸奔的lwip,现在移植好了什么都通了想测速度,将netio.c同样方法添加,发现跟你一样的问题
这个帖子http://www.amobbs.com/thread-5472533-1-1.html 说能够调通,可我没通撒
页:
[1]