|
4 | 4 |
|
5 | 5 | ## 初始化函数 |
6 | 6 |
|
7 | | -> int webnet_init(void); |
| 7 | +```c |
| 8 | +int webnet_init(void); |
| 9 | +``` |
8 | 10 |
|
9 | 11 | 用于初始化 WebNet 服务器,包括创建线程用于监听客户端连接事件、初始化开启的功能模块等功能; |
10 | 12 |
|
11 | | -| 参数 | 描述 | |
| 13 | +|**参数** | **描述** | |
12 | 14 | | :------- | :--------- | |
13 | 15 | | 无 | 无 | |
14 | | -| **返回** | **描述** | |
| 16 | +| **返回** | **--** | |
15 | 17 | | = 0 | 初始化成功 | |
16 | 18 | | < 0 | 初始化失败 | |
17 | 19 |
|
18 | 20 | ## 设置监听套接字端口 |
19 | 21 |
|
20 | | -> void webnet_set_port(int port); |
| 22 | +```c |
| 23 | +void webnet_set_port(int port); |
| 24 | +``` |
21 | 25 |
|
22 | 26 | 用于设置当前 WebNet 服务器监听端口号,WebNet 服务器默认监听端口号是 80,这也是 HTTP 协议默认端口号。使用默认端口号访问 URL 地址时可以不输入端口号直接访问,当使用非默认端口号时,需要在 URL 地址上指明端口号,如:`http://host:8080/index.html` 。该函数只能**用于 WebNet 服务器初始化之前**。 |
23 | 27 |
|
24 | | -| 参数 | 描述 | |
| 28 | +|**参数** | **描述** | |
25 | 29 | | :------- | :------------------- | |
26 | 30 | | port | 设置的监听套接字端口 | |
27 | | -| **返回** | **描述** | |
| 31 | +| **返回** | **--** | |
28 | 32 | | 无 | 无 | |
29 | 33 |
|
30 | 34 | ## 获取监听套接字端口 |
31 | 35 |
|
32 | | -> int webnet_get_port(void); |
| 36 | +```c |
| 37 | +int webnet_get_port(void); |
| 38 | +``` |
33 | 39 |
|
34 | 40 | 用于获取当前 WebNet 服务器监听套接字端口号。 |
35 | 41 |
|
36 | | -| 参数 | 描述 | |
| 42 | +|**参数** | ****描述**** | |
37 | 43 | | :------- | :--------------- | |
38 | 44 | | 无 | 无 | |
39 | | -| **返回** | **描述** | |
| 45 | +| **返回** | **--** | |
40 | 46 | | >=0 | 监听套接字端口号 | |
41 | 47 |
|
42 | 48 | ## 设置服务器根目录 |
43 | 49 |
|
44 | | -> void webnet_set_root(const char* webroot_path); |
| 50 | +```c |
| 51 | +void webnet_set_root(const char* webroot_path); |
| 52 | +``` |
45 | 53 |
|
46 | 54 | 用于设置当前 WebNet 服务器根目录路径,WebNet 服务器默认根目录为 `/webnet`,浏览器和 WebNet 函数中使用或访问的路径都是基于根目录路径。当浏览器访问 `http://host/index.html` 时,会把文件系统中的 `/webnet/index.html` 返回给浏览器。 |
47 | 55 |
|
48 | | -| 参数 | 描述 | |
| 56 | +|**参数** | **描述** | |
49 | 57 | | :----------- | :--------------- | |
50 | 58 | | webroot_path | 设置的根目录地址 | |
51 | | -| **返回** | **描述** | |
| 59 | +| **返回** | **--** | |
52 | 60 | | 无 | 无 | |
53 | 61 |
|
54 | 62 | ## 获取服务器根目录 |
55 | 63 |
|
56 | | -> const char* webnet_get_root(void); |
| 64 | +```c |
| 65 | +const char* webnet_get_root(void); |
| 66 | +``` |
57 | 67 |
|
58 | 68 | 用于获取当前 WebNet 服务器根目录地址。 |
59 | 69 |
|
60 | | -| 参数 | 描述 | |
| 70 | +|**参数** | **描述** | |
61 | 71 | | :------- | :--------- | |
62 | 72 | | 无 | 无 | |
63 | | -| **返回** | **描述** | |
| 73 | +| **返回** | **--** | |
64 | 74 | | != NULL | 根目录地址 | |
65 | 75 |
|
66 | 76 | ## 获取请求链接的类型 |
67 | 77 |
|
68 | | -> const char* mime_get_type(const char* url); |
| 78 | +```c |
| 79 | +const char* mime_get_type(const char* url); |
| 80 | +``` |
69 | 81 |
|
70 | 82 | 用于获取当前请求 URL 链接的类型,如:网页、图片、文本等。 |
71 | 83 |
|
72 | | -| 参数 | 描述 | |
| 84 | +|**参数** | **描述** | |
73 | 85 | | :------- | :------------- | |
74 | 86 | | url | 请求链接的地址 | |
75 | | -| **返回** | **描述** | |
| 87 | +| **返回** | **--** | |
76 | 88 | | != NULL | 请求链接的类型 | |
77 | 89 |
|
78 | 90 | ## 添加 ASP 变量处理方式 |
79 | 91 |
|
80 | | -> void webnet_asp_add_var(const char* name, void (*handler)(struct webnet_session* session)); |
| 92 | +```c |
| 93 | +void webnet_asp_add_var(const char* name, void (*handler)(struct webnet_session* session)); |
| 94 | +``` |
81 | 95 |
|
82 | 96 | 该函数用于添加一个 ASP 变量处理方式,当 ASP 文件中出现添加的 `name` 变量名时,会执行对应的 `handle` 操作。 |
83 | 97 |
|
84 | | -| 参数 | 描述 | |
| 98 | +|**参数** | **描述** | |
85 | 99 | | :---------------------------------------------- | :--------------- | |
86 | 100 | | name | ASP 变量名称 | |
87 | 101 | | void (*handler)(struct webnet_session* session) | ASP 变量处理方式 | |
88 | | -| **返回** | **描述** | |
| 102 | +| **返回** | **--** | |
89 | 103 | | 无 | 无 | |
90 | 104 |
|
91 | 105 | ## 添加 CGI 事件处理方式 |
92 | 106 |
|
93 | | -> void webnet_cgi_register(const char* name, void (*handler)(struct webnet_session* session)); |
| 107 | +```c |
| 108 | +void webnet_cgi_register(const char* name, void (*handler)(struct webnet_session* session)); |
| 109 | +``` |
94 | 110 |
|
95 | 111 | 该函数用于注册一个 CGI 事件处理方式,当浏览器请求带有 `name` 名称的 URL 时,会执行相应的 `handle` 操作。 |
96 | 112 |
|
97 | | -| 参数 | 描述 | |
| 113 | +|**参数** | **描述** | |
98 | 114 | | :---------------------------------------------- | :--------------- | |
99 | 115 | | name | CGI 事件名称 | |
100 | 116 | | void (*handler)(struct webnet_session* session) | CGI 事件处理方式 | |
101 | | -| **返回** | **描述** | |
| 117 | +| **返回** | **--** | |
102 | 118 | | 无 | 无 | |
103 | 119 |
|
104 | 120 | ## 设置 CGI 事件根目录 |
105 | 121 |
|
106 | | -> void webnet_cgi_set_root(const char* root); |
| 122 | +```c |
| 123 | +void webnet_cgi_set_root(const char* root); |
| 124 | +``` |
107 | 125 |
|
108 | 126 | WebNet 服务器默认的 CGI 事件根目录为`/cgi-bin`,当浏览器请求 `http://host/cgi-bin/test` 地址时,会执行 `test` 名称对应的 CGI 事件处理函数。 |
109 | 127 |
|
110 | 128 | 该函数用于设置新的 CGI 事件根目录,设置成功之前的 CGI 根目录将不再起作用。 |
111 | 129 |
|
112 | | -| 参数 | 描述 | |
| 130 | +|**参数** | **描述** | |
113 | 131 | | :------- | :------------- | |
114 | 132 | | root | CGI 事件根目录 | |
115 | | -| **返回** | **描述** | |
| 133 | +| **返回** | **--** | |
116 | 134 | | 无 | 无 | |
117 | 135 |
|
118 | 136 | ## 设置基本认证信息 |
119 | 137 |
|
120 | | -> void webnet_auth_set(const char* path, const char* username_password); |
| 138 | +```c |
| 139 | +void webnet_auth_set(const char* path, const char* username_password); |
| 140 | +``` |
121 | 141 |
|
122 | 142 | 用于设置目录访问时的基本认证信息,包括用户名和密码。 |
123 | 143 |
|
124 | | -| 参数 | 描述 | |
| 144 | +|**参数** | **描述** | |
125 | 145 | | :---------------- | :--------------------------------------------- | |
126 | 146 | | path | 需要设置基本认证信息的目录 | |
127 | 147 | | username_password | 设置的用户名和密码,格式为 `username:password` | |
128 | | -| **返回** | **描述** | |
| 148 | +| **返回** | **--** | |
129 | 149 | | 无 | 无 | |
130 | 150 |
|
131 | 151 | ## 设置目录别名 |
132 | 152 |
|
133 | | -> void webnet_alias_set(char* old_path, char* new_path); |
| 153 | +```c |
| 154 | +void webnet_alias_set(char* old_path, char* new_path); |
| 155 | +``` |
134 | 156 |
|
135 | 157 | 用于设置目录的别名,设置成功之后可以使用目录别名访问该目录。 |
136 | 158 |
|
137 | | -| 参数 | 描述 | |
| 159 | +|**参数** | **描述** | |
138 | 160 | | :------- | :--------------------------------------- | |
139 | 161 | | old_path | 需要设置别名的目录 | |
140 | 162 | | new_path | 设置的目录别名,一般为服务器中存在的目录 | |
141 | | -| **返回** | **描述** | |
| 163 | +| **返回** | **--** | |
142 | 164 | | 无 | 无 | |
143 | 165 |
|
144 | 166 | ## 发送 HTTP 请求头部 |
145 | 167 |
|
146 | | -> void webnet_session_set_header(struct webnet_session* session, const char* mimetype, int code, const char* title, int length); |
| 168 | +```c |
| 169 | +void webnet_session_set_header(struct webnet_session* session, const char* mimetype, int code, const char* title, int length); |
| 170 | +``` |
147 | 171 |
|
148 | 172 | 用于拼接并发送头部信息到连接的客户端,一般用于 ASP 变量处理函数和 CGI 事件处理函数中。 |
149 | 173 |
|
150 | | -| 参数 | 描述 | |
| 174 | +|**参数** | **描述** | |
151 | 175 | | :------- | :----------------------------------------------------------- | |
152 | 176 | | session | 当前服务器连接的会话 | |
153 | 177 | | mimetype | 需要发送的响应文件类型(Content-Type),可以使用 `mime_get_type` 函数获取 | |
154 | 178 | | code | 发送的响应状态码,正常为 200 | |
155 | 179 | | title | 发送的响应状态类型,正常为 OK | |
156 | 180 | | length | 需要发送的响应文件长度(Content-Length) | |
157 | | -| **返回** | **描述** | |
| 181 | +| **返回** | **--** | |
158 | 182 | | 无 | 无 | |
159 | 183 |
|
160 | 184 | ## 发送 HTTP 响应数据 |
161 | 185 |
|
162 | | -> int webnet_session_write(struct webnet_session* session, const rt_uint8_t* data, rt_size_t size); |
| 186 | +```c |
| 187 | +int webnet_session_write(struct webnet_session* session, const rt_uint8_t* data, rt_size_t size); |
| 188 | +``` |
163 | 189 |
|
164 | 190 | 用于发送响应数据到客户端,一般用于 ASP 变量处理函数和 CGI 事件处理函数中。 |
165 | 191 |
|
166 | | -| 参数 | 描述 | |
| 192 | +|**参数** | **描述** | |
167 | 193 | | :------- | :------------------- | |
168 | 194 | | session | 当前服务器连接的会话 | |
169 | 195 | | data | 发送的数据指针 | |
170 | 196 | | size | 发送的数据长度 | |
171 | | -| **返回** | **描述** | |
| 197 | +| **返回** | **--** | |
172 | 198 | | 无 | 无 | |
173 | 199 |
|
174 | 200 |
|
175 | 201 | ## 发送 HTTP 固定格式响应数据 |
176 | 202 |
|
177 | | -> void webnet_session_printf(struct webnet_session* session, const char* fmt, ...); |
| 203 | +```c |
| 204 | +void webnet_session_printf(struct webnet_session* session, const char* fmt, ...); |
| 205 | +``` |
178 | 206 |
|
179 | 207 | 用于发送固定格式的响应数据到客户端,一般用于 ASP 变量处理函数和 CGI 事件处理函数中。 |
180 | 208 |
|
181 | | -| 参数 | 描述 | |
| 209 | +|**参数** | **描述** | |
182 | 210 | | :------- | :----------------------- | |
183 | 211 | | session | 当前服务器连接的会话 | |
184 | 212 | | fmt | 自定义的输入数据的表达式 | |
185 | 213 | | ... | 输入的参数 | |
186 | | -| **返回** | **描述** | |
| 214 | +| **返回** | **--** | |
187 | 215 | | 无 | 无 | |
188 | 216 |
|
189 | 217 | ## 获取上传文件的名称 |
190 | 218 |
|
191 | | -> const char* webnet_upload_get_filename(struct webnet_session* session); |
| 219 | +```c |
| 220 | +const char* webnet_upload_get_filename(struct webnet_session* session); |
| 221 | +``` |
192 | 222 |
|
193 | 223 | 获取当前上传文件的名称,用于打开或创建文件。 |
194 | 224 |
|
195 | | -| 参数 | 描述 | |
| 225 | +|**参数** | **描述** | |
196 | 226 | | :------- | :------------------- | |
197 | 227 | | session | 当前服务器连接的会话 | |
198 | | -| **返回** | **描述** | |
| 228 | +| **返回** | **--** | |
199 | 229 | | != NULL | 当前上传文件的名称 | |
200 | 230 |
|
201 | 231 | ## 获取上传文件的类型 |
202 | 232 |
|
203 | | -> const char* webnet_upload_get_content_type(struct webnet_session* session); |
| 233 | +```c |
| 234 | +const char* webnet_upload_get_content_type(struct webnet_session* session); |
| 235 | +``` |
204 | 236 |
|
205 | 237 | 获取当前上传文件的类型。 |
206 | 238 |
|
207 | | -| 参数 | 描述 | |
| 239 | +|**参数** | **描述** | |
208 | 240 | | :------- | :------------------- | |
209 | 241 | | session | 当前服务器连接的会话 | |
210 | | -| **返回** | **描述** | |
| 242 | +| **返回** | **--** | |
211 | 243 | | != NULL | 当前上传文件的类型 | |
212 | 244 |
|
213 | 245 | ## 获取上传文件参数 |
214 | 246 |
|
215 | | -> const char* webnet_upload_get_nameentry(struct webnet_session* session, const char* name); |
| 247 | +```c |
| 248 | +const char* webnet_upload_get_nameentry(struct webnet_session* session, const char* name); |
| 249 | +``` |
216 | 250 |
|
217 | 251 | 获取注册的上传文件的分隔符(HTTP 请求 boundary 参数)。 |
218 | 252 |
|
219 | | -| 参数 | 描述 | |
| 253 | +|**参数** | **描述** | |
220 | 254 | | :------- | :------------------- | |
221 | 255 | | session | 当前服务器连接的会话 | |
222 | 256 | | name | 上传文件的目录路径 | |
223 | | -| **返回** | **描述** | |
| 257 | +| **返回** | **--** | |
224 | 258 | | != NULL | 当前上传文件的类型 | |
225 | 259 |
|
226 | 260 | ## 获取上传文件打开的文件描述符 |
227 | 261 |
|
228 | | -> const void* webnet_upload_get_userdata(struct webnet_session* session); |
| 262 | +```c |
| 263 | +const void* webnet_upload_get_userdata(struct webnet_session* session); |
| 264 | +``` |
229 | 265 |
|
230 | 266 | 获取当前上传文件打开之后生成的文件描述符,用于读写数据到文件中。 |
231 | 267 |
|
232 | | -| 参数 | 描述 | |
| 268 | +|**参数** | **描述** | |
233 | 269 | | :------- | :----------------------- | |
234 | 270 | | session | 当前服务器连接的会话 | |
235 | | -| **返回** | **描述** | |
| 271 | +| **返回** | **--** | |
236 | 272 | | != NULL | 上传文件打开的文件描述符 | |
0 commit comments