嵌入式web server (goahead)----(2)调试和使用客户端与服务端的操作

一:服务器启动

./build/linux-x86-default/bin/goahead-test -v --home /etc/goahead /home/luoxuandong/Desktop/goahead-3.6.5/test/web

-v表示版本号

--home 表示家目录

/etc/goahead 表示的是route.txt 等配置文件存在的路径。

/home/luoxuandong/Desktop/goahead-3.6.5/test/web 表示的是xxx.html等文件存在的路径。


二:用网页去连接客户端

http://127.0.0.1:18080/index.html

那么就会去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有index.html文件。如果有就发给客网页客户端显示。如果么有就报错。

http://127.0.0.1:18080/haha/big.txt

那么就会去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有haha目录,该目录下有没有big.txt文件。如果有就发给客网页客户端显示。如果么有就报错。

扫描二维码关注公众号,回复: 1026826 查看本文章

http://127.0.0.1:18080/action

准备:(1)修改actionHandler函数。在其中加入printf打印

1.就会解析到,首先根据/action找到对应字符串也就是由websAddRoute定义的路由。

2.然后根据对应的字符串,找到对应的处理函数。websDefineHandler 定义了字符串和处理函数的哈希表映射。

3.执行这个处理函数。printf将在服务器打印出来

http://127.0.0.1:18080/action/showTest

同上:

准备:(1)在test.c中main()加入websDefineAction("showTest", showTest);

        (2)在test.c中main()之上,加入函数定义。static void showTest(Webs *wp){printf("test\n")}

1.就会解析到,首先根据/action找到对应字符串也就是由websAddRoute定义的路由。

2.然后根据对应的字符串,找到对应的处理函数。websDefineHandler 定义了字符串和处理函数的哈希表映射。

3.执行这个处理函数。在这个action的处理函数中,又用了一个和调用action处理函数一样的机制。需要我们去注册一个action下的处理函数,然后匹配根据字符串,来对应,这里注册通过websDefineAction("sessionTest", sessionTest);来注册,也就是

客户端的urlhttp://127.0.0.1:18080/action/showTest的时候经过action处理函数处理,然后又通过showtest的处理函数去处理。

那么:当http://127.0.0.1:18080/action/big.txt,服务器会不会

去找/home/luoxuandong/Desktop/goahead-3.6.5/test/web路径下有没有acton目录,big.txt文件?

实验结果:不会,他会调用到了action的处理函数,这个具体应该是跟服务器解析URL字符串后的处理有关系。


猜你喜欢

转载自blog.csdn.net/qq1319713925/article/details/80118858
今日推荐