146 Star 1.3K Fork 418

GVP搜狗开源/workflow

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
server.cc 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
xiehan 提交于 2025-05-08 15:18 +08:00 . Remove LICENSEs in tutorials.
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <signal.h>
#include "workflow/Workflow.h"
#include "workflow/WFTaskFactory.h"
#include "workflow/WFServer.h"
#include "message.h"
using WFTutorialTask = WFNetworkTask<protocol::TutorialRequest,
protocol::TutorialResponse>;
using WFTutorialServer = WFServer<protocol::TutorialRequest,
protocol::TutorialResponse>;
using namespace protocol;
void process(WFTutorialTask *task)
{
TutorialRequest *req = task->get_req();
TutorialResponse *resp = task->get_resp();
void *body;
size_t size;
size_t i;
req->get_message_body_nocopy(&body, &size);
for (i = 0; i < size; i++)
((char *)body)[i] = toupper(((char *)body)[i]);
resp->set_message_body(body, size);
}
void sig_handler(int signo) { }
int main(int argc, char *argv[])
{
unsigned short port;
if (argc != 2)
{
fprintf(stderr, "USAGE %s <port>\n", argv[0]);
exit(1);
}
port = atoi(argv[1]);
signal(SIGINT, sig_handler);
struct WFServerParams params = SERVER_PARAMS_DEFAULT;
params.request_size_limit = 4 * 1024;
WFTutorialServer server(&params, process);
if (server.start(AF_INET6, port) == 0 ||
server.start(AF_INET, port) == 0)
{
getchar();
server.stop();
}
else
{
perror("server.start");
exit(1);
}
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/sogou/workflow.git
git@gitee.com:sogou/workflow.git
sogou
workflow
workflow
windows

搜索帮助