在C语言中创建AJAX服务器端脚本需要使用Web服务器和HTTP库。以下是一个简单的示例,使用了libmicrohttpd
库和cJSON
库来创建一个基本的AJAX服务器端脚本。
首先,确保已经安装了libmicrohttpd
和cJSON
库。在Debian/Ubuntu系统中,可以使用以下命令安装:
sudo apt-get install libmicrohttpd-dev libcjson-dev
接下来,创建一个名为ajax_server.c
的文件,并将以下代码粘贴到其中:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <cjson/cJSON.h>
#include <microhttpd.h>
#define PORT 8080
int answer_to_connection(void *cls, struct MHD_Connection *connection,
const char *url, const char *method,
const char *version, const char *upload_data,
size_t *upload_data_size, void **ptr)
{
static int a_ptr;
const char *page = "<html><body>Hello, world!</body></html>";
struct MHD_Response *response;
int ret;
if (0 != strcmp(method, "GET"))
return MHD_NO; /* unexpected method */
if (&a_ptr != *ptr)
{
/* first call, initialize */
a_ptr = 0;
*ptr = &a_ptr;
return MHD_YES;
}
response = MHD_create_response_from_buffer(strlen(page), (void *) page, MHD_RESPMEM_PERSISTENT);
MHD_add_response_header(response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
ret = MHD_queue_response(connection, MHD_HTTP_OK, response);
MHD_destroy_response(response);
return ret;
}
int main()
{
struct MHD_Daemon *daemon;
daemon = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION, PORT, NULL, NULL, &answer_to_connection, NULL,
MHD_OPTION_END);
if (NULL == daemon)
return 1;
printf("Started HTTP server on port %i\n", PORT);
getchar();
MHD_stop_daemon(daemon);
return 0;
}
编译并运行代码:
gcc ajax_server.c -o ajax_server `pkg-config --libs --cflags libmicrohttpd cjson`
./ajax_server
现在,您可以通过访问http://localhost:8080
来查看服务器上的内容。
这个示例仅用于演示如何在C语言中创建一个简单的AJAX服务器端脚本。实际应用中,您可能需要根据需求定制HTTP响应、处理POST请求、实现身份验证等。
推荐的腾讯云相关产品:
领取专属 10元无门槛券
手把手带您无忧上云