gpt4 book ai didi

c++ - 使用 Wt 框架监听数据

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:55 27 4
gpt4 key购买 nike

在任何端口(例如 200.59.43.32:3333)上使用 Wt 创建网页都很容易。

但是,当有人向它发送数据(一些数据字符串、json 等)时,是否有一个函数(我找不到)在同一个端口上监听。换句话说,如果有人向200.59.43.32:3333发送一个字符串“much data”数据,我如何使用Wt捕获它?

编辑:如果无法使用纯字符串,是否可以使用适当的 JSON?

我知道我可以使用 (linux) socket/bind 等打开另一个端口来监听这样的字符串。

最佳答案

如果它只是随机数据,我无法知道您可以使用 Wt 做到这一点。在这种情况下,您可以使用像 HAProxy 这样的反向代理解决方案,并将任何 HTTP 流量转发到 Wt,并将任何其他流量转发到另一个套接字。

如果您在谈论 HTTP 流量,静态资源可能就是您所追求的。 Wt 对 TechEmpower framework benchmarks 的实现包含一些您可以作为代码基础的自定义静态资源。例如,有 PlaintextResource:

class PlaintextResource : public Wt::WResource {
virtual void handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response) {
response.setMimeType("text/plain");
response.addHeader("Server", "Wt");

response.out() << "Hello, World!";
}
};

您可以使用request 变量来检索有关请求的任何数据,请参阅Wt::Http::Request .

您可以像这样访问此资源:

int main(int argc, char** argv) {
try {
Wt::WServer server(argv[0]);

server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION);

PlaintextResource plaintextResource;
server.addResource(&plaintextResource, "/plaintext");

if (server.start()) {
int sig = Wt::WServer::waitForShutdown(argv[0]);

std::cerr << "Shutdown (signal = " << sig << ")" << std::endl;
server.stop();
}
} catch (Wt::WServer::Exception& e) {
std::cerr << e.what() << "\n";
return 1;
} catch (std::exception& e) {
std::cerr << "exception: " << e.what() << "\n";
return 1;
}
}

关于c++ - 使用 Wt 框架监听数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45671529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com