首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在czmq上设置发送/接收超时?

如何在czmq上设置发送/接收超时?
EN

Stack Overflow用户
提问于 2019-11-27 15:50:36
回答 2查看 227关注 0票数 0

我想知道如何在czmq库的zstr_send()zstr_recv()上设置超时。

我知道这可以用libzmq中的zmq_setsockopt (requester, ZMQ_RCVTIMEO, &timeout, sizeof(timeout))完成,但不能在czmq中完成

libczmq的语法是什么?!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-27 19:30:52

是啊!找到它。

zsock_set_rcvtimeo()zsock_set_sndtimeo()是设置超时的答案。

czmq没有好的文档,因为它的API好!:|

zsock_option()中有很多没有文档的API。

票数 1
EN

Stack Overflow用户

发布于 2019-11-27 16:38:12

您可以使用select:

代码语言:javascript
复制
int64_t start; 
struct timeval tv;
fd_set fds;
int fd,rc;
tv.tv_sec = 1; // timeout in seconds
tv.tv_usec = 0;
FD_ZERO(&fds);
FD_SET(fd, &fds);

start = zclock_time ();
zstr_send (client, "hello");
rc = select(fd + 1, &fds, (fd_set *)0, (fd_set *)0, &tv);
if (rc == 0) {
// timeoout expired 
}
if (rc == -1) {
// erreur select 
}
// message recieved  before timeout
printf (" message recieved s/second\n",  (1000 * 10000) / (int) (zclock_time () - start));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59065431

复制
相关文章

相似问题

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