Pistache:如何设置 TCP 服务器选项,例如 SO_REUSEADDR

Pistache: how to set TCP server options, for example SO_REUSEADDR

我开始用 Pistache 做一些测试,我想知道如何设置 TCP 选项。就像在下面的示例中一样,我想将 SO_REUSEADDR 设置为服务器套接字。

#include <pistache/endpoint.h>

using namespace Pistache;

struct HelloHandler : public Http::Handler {
  HTTP_PROTOTYPE(HelloHandler)
  void onRequest(const Http::Request&, Http::ResponseWriter writer) override{
    writer.send(Http::Code::Ok, "Hello, World!");
  }
};

int main() {
  Http::listenAndServe<HelloHandler>(Pistache::Address("*:9080"));
}

listenAndServe() 有一个可选的 options 参数,Options class 有一个 ReuseAddr 标志定义(和一个 ReusePort 标志), 例如:

int main() {
    auto opts = Http::Endpoint::options();
    opts.flags(Tcp::Options::ReuseAddr);
    // set other options as needed...
    Http::listenAndServe<HelloHandler>(Pistache::Address("*:9080"), opts);
}