Thrift C++ 设置超时linux和windows差异
40浏览 · 2024-03-10 12:43:31
在 [thrift](https://geek.csdn.net/educolumn/326d92ba6b13fa0b291fe319eeeca050?spm=1055.2569.3001.10083) C++ 中,设置超时的方法在 Linux 和 [window](https://geek.csdn.net/educolumn/03e5a5a554174a38fdfeb8376bd685e2?spm=1055.2569.3001.10083)s 上是一样的。你可以使用 `setRecvTimeout()` 和 `setSendTimeout()` 方法来设置超时时间。
示例[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083):
```cpp
#include <[thrift](https://geek.csdn.net/educolumn/326d92ba6b13fa0b291fe319eeeca050?spm=1055.2569.3001.10083)/transport/TTransportUtils.h>
using namespace apache::thrift::transport;
// 创建 TSocket 实例
std::shared_ptr<TSocket> socket = std::make_shared<TSocket>("localhost", 9090);
// 设置超时时间为 5000 毫秒
socket->setRecvTimeout(5000);
socket->setSendTimeout(5000);
// 创建 TTransport 实例并指定 TSocket
std::shared_ptr<TTransport> transport = std::make_shared<TFramedTransport>(socket);
// 创建 TProtocol 实例
std::shared_ptr<TProtocol> protocol = std::make_shared<TBinaryProtocol>(transport);
// 创建[客户](https://geek.csdn.net/educolumn/29be0cf856856f663010713fa7f8bb7f?spm=1055.2569.3001.10083)端实例
MyServiceClient client(protocol);
// 连接服务器
transport->open();
// 调用服务的方法
client.