首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Wt框架监听数据

使用Wt框架监听数据
EN

Stack Overflow用户
提问于 2017-08-14 17:34:40
回答 2查看 483关注 0票数 1

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

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

编辑:如果不能使用普通字符串,是否可以使用适当的JSON?

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

EN

回答 2

Stack Overflow用户

发布于 2017-08-14 18:17:44

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

如果你谈论的是HTTP流量,静态资源可能是你想要的。Wt的TechEmpower framework benchmarks实现包含一些定制的静态资源,您可以基于这些资源编写代码。例如,有一个PlaintextResource

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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;
  }
}
票数 1
EN

Stack Overflow用户

发布于 2017-08-14 18:12:22

如果你想发送普通字符串,你需要打开一个套接字。HTTP应用程序使用HTTP协议与客户端通信,因此要实现此"Wt-way",您应该执行HTTP请求、GET或POST。

据我所知,您需要创建一个WResource,并使用WServer::addResource()在服务器中注册它,以给它一个固定的网址。之后,重新实现WResource::handleRequest()来访问HTTP请求数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45671529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档