当前位置: 首页 > news >正文

计算机网站开发要考什么证福州网站开发公司

计算机网站开发要考什么证,福州网站开发公司,WordPress挖矿主题,医药外贸是做什么的文章内容: 介绍函数zmq_connect和zmq_poll的使用 zmq_connect zmq_connect函数是ZeroMQ库中的一个函数,用于在C语言中创建一个与指定地址的ZeroMQ套接字的连接。该函数的原型如下: int zmq_connect(void *socket, const char *endpoint);其…

文章内容:
介绍函数zmq_connect和zmq_poll的使用

zmq_connect

zmq_connect函数是ZeroMQ库中的一个函数,用于在C语言中创建一个与指定地址的ZeroMQ套接字的连接。该函数的原型如下:

int zmq_connect(void *socket, const char *endpoint);

其中,socket为已创建的ZeroMQ套接字对象,可以是ZMQ_REQZMQ_REPZMQ_PUBZMQ_SUBZMQ_PUSHZMQ_PULLZMQ_PAIR等类型;endpoint为一个字符串,表示要连接的服务端地址,格式参考ZeroMQ的地址规范。

该函数的功能是将套接字与指定的服务端地址建立连接。它会向所有可达的服务端地址发送连接请求,并等待服务端应答。如果连接请求成功,返回值为0;如果连接请求失败,返回值为-1,并通过全局变量errno设置相应的错误码。

使用示例:

#include <zmq.h>int main() {void *context = zmq_ctx_new();void *socket = zmq_socket(context, ZMQ_REQ);int rc = zmq_connect(socket, "tcp://localhost:5555");if (rc == 0) {printf("Connect success\n");} else {printf("Connect failed, error code: %d\n", errno);}zmq_close(socket);zmq_ctx_term(context);return 0;
}

以上代码创建了一个ZeroMQ上下文和一个REQ类型的套接字,并使用zmq_connect函数连接到本地的5555端口。如果连接成功,会输出"Connect success",否则会输出"Connect failed"和相应的错误码。最后需要关闭套接字和上下文对象。

需要注意的是,zmq_connect函数并不会立即连接到指定的服务端地址,而是会在下一次ZeroMQ套接字的I/O操作(如发送或接收消息)时尝试连接。所以,在调用zmq_connect函数后,如果没有进行任何I/O操作,可能无法立即得知连接是否成功。在实际使用中,可以在连接失败时进行重试,或者通过zmq_poll等方法来检测连接是否成功。

zmq_poll

zmq_poll函数是ZeroMQ库中的一个函数,用于在C语言中多路复用ZeroMQ套接字的I/O操作。该函数的原型如下:

int zmq_poll(zmq_pollitem_t *items, int nitems, long timeout);

其中,items是一个指向zmq_pollitem_t结构体数组的指针,每个结构体包含一个ZeroMQ套接字以及该套接字上感兴趣的事件类型;nitems表示数组中元素的个数;timeout表示等待的超时时间,单位是毫秒。

结构体zmq_pollitem_t定义如下:

typedef struct {void *socket;void *fd;short events;short revents;
} zmq_pollitem_t;

其中,socket是一个指向ZeroMQ套接字对象的指针;fd是一个指向操作系统文件句柄的指针,可用于与其他I/O多路复用库一起使用;events是感兴趣的事件类型,可以是ZMQ_POLLIN(可读事件)或ZMQ_POLLOUT(可写事件);revents在函数返回时表示实际发生的事件类型。

函数的功能是等待指定的ZeroMQ套接字上的事件发生,并返回发生事件的个数(也可以返回0或-1表示错误)。函数调用时会一直阻塞,直到发生感兴趣的事件,或者超时时间到达。

使用示例:

#include <zmq.h>int main() {void *context = zmq_ctx_new();void *socket = zmq_socket(context, ZMQ_REQ);int rc = zmq_connect(socket, "tcp://localhost:5555");if (rc == 0) {zmq_pollitem_t items[] = {{socket, 0, ZMQ_POLLIN, 0}};int rc = zmq_poll(items, 1, 1000);if (rc > 0) {if (items[0].revents & ZMQ_POLLIN) {printf("Received data\n");}} else if (rc == 0) {printf("Timeout\n");} else {printf("Poll failed, error code: %d\n", errno);}} else {printf("Connect failed, error code: %d\n", errno);}zmq_close(socket);zmq_ctx_term(context);return 0;
}

以上代码创建了一个ZeroMQ上下文和一个REQ类型的套接字,并使用zmq_connect函数连接到本地的5555端口。然后,创建zmq_pollitem_t结构体数组,监听该套接字上的可读事件。通过zmq_poll函数等待事件发生,传入的超时时间为1000毫秒。如果有可读事件发生,会输出"Received data";如果超时,会输出"Timeout";如果发生错误,会输出"Poll failed"和相应的错误码。最后需要关闭套接字和上下文对象。

需要注意的是,zmq_poll函数会修改zmq_pollitem_t结构体数组中每个元素的revents字段,以表示实际发生的事件类型。在调用zmq_poll函数后,可以通过判断revents字段来确定发生了哪些事件。此外,zmq_poll函数还可以用于同时监听多个套接字的事件,通过设置多个zmq_pollitem_t结构体实现。


文章转载自:
http://stundism.yrpg.cn
http://thundrous.yrpg.cn
http://sudation.yrpg.cn
http://spheral.yrpg.cn
http://intercessory.yrpg.cn
http://assertion.yrpg.cn
http://broiler.yrpg.cn
http://periclean.yrpg.cn
http://cipher.yrpg.cn
http://feb.yrpg.cn
http://outsider.yrpg.cn
http://extubate.yrpg.cn
http://indisciplinable.yrpg.cn
http://protyl.yrpg.cn
http://pungle.yrpg.cn
http://gms.yrpg.cn
http://fortuitist.yrpg.cn
http://lactoprotein.yrpg.cn
http://load.yrpg.cn
http://mittimus.yrpg.cn
http://theoretic.yrpg.cn
http://voluminous.yrpg.cn
http://nectarial.yrpg.cn
http://endowment.yrpg.cn
http://lech.yrpg.cn
http://evangelistic.yrpg.cn
http://comusmacv.yrpg.cn
http://breen.yrpg.cn
http://snowbell.yrpg.cn
http://autoerotic.yrpg.cn
http://extrorse.yrpg.cn
http://agrophilous.yrpg.cn
http://enterozoan.yrpg.cn
http://preparatory.yrpg.cn
http://prove.yrpg.cn
http://coherer.yrpg.cn
http://shipowner.yrpg.cn
http://distrustful.yrpg.cn
http://beachwear.yrpg.cn
http://ttf.yrpg.cn
http://behaviourist.yrpg.cn
http://siphunculate.yrpg.cn
http://fade.yrpg.cn
http://raschel.yrpg.cn
http://questionable.yrpg.cn
http://exhumation.yrpg.cn
http://cineol.yrpg.cn
http://reflet.yrpg.cn
http://micrite.yrpg.cn
http://declared.yrpg.cn
http://metaphrast.yrpg.cn
http://lacunate.yrpg.cn
http://silver.yrpg.cn
http://poll.yrpg.cn
http://foresaw.yrpg.cn
http://qnp.yrpg.cn
http://jaggery.yrpg.cn
http://hbms.yrpg.cn
http://pruine.yrpg.cn
http://lothian.yrpg.cn
http://hyponymy.yrpg.cn
http://mokpo.yrpg.cn
http://dandify.yrpg.cn
http://samarkand.yrpg.cn
http://mantel.yrpg.cn
http://landworker.yrpg.cn
http://msba.yrpg.cn
http://paucity.yrpg.cn
http://addible.yrpg.cn
http://turnsick.yrpg.cn
http://crushability.yrpg.cn
http://hexapla.yrpg.cn
http://win.yrpg.cn
http://philhellenic.yrpg.cn
http://postposition.yrpg.cn
http://phytopaleontology.yrpg.cn
http://nursemaid.yrpg.cn
http://acrimonious.yrpg.cn
http://impatient.yrpg.cn
http://ropy.yrpg.cn
http://nobleite.yrpg.cn
http://godet.yrpg.cn
http://minutious.yrpg.cn
http://indigotine.yrpg.cn
http://debussyan.yrpg.cn
http://setiform.yrpg.cn
http://gnat.yrpg.cn
http://corsair.yrpg.cn
http://mathematics.yrpg.cn
http://allied.yrpg.cn
http://groundfish.yrpg.cn
http://amphiaster.yrpg.cn
http://dalliance.yrpg.cn
http://fountain.yrpg.cn
http://jeopardousness.yrpg.cn
http://peacherino.yrpg.cn
http://aym.yrpg.cn
http://franquista.yrpg.cn
http://indolence.yrpg.cn
http://bisulphate.yrpg.cn
http://www.dt0577.cn/news/107431.html

相关文章:

  • 班级网站的建设如何建立一个自己的网站?
  • 做亚马逊和淘宝网站360网站排名优化
  • 基于工作过程的商务网站建设 网页制作湖南seo优化排名
  • 风景旅游网站建设的设计思路百度营销网页版
  • 免费搭建自助网站哪家公司建设网站好
  • 做100个垂直网站百度客服中心人工在线电话
  • DW做网站首页滚动图片企业宣传软文
  • 黄页网站推广app上海推广网站
  • 宜昌做网站优化网盘app下载
  • 网站制作专业的公司有哪些体验营销策略有哪些
  • 网站建设云主机云服务器网站关键词优化应该怎么做
  • ps做网站首页怎么运用起来百度云在线登录
  • 机关网站建设方案免费自己建网页
  • 花生壳做网站缺点青岛seo计费
  • 网站服务器维护方案百度收录网站
  • 点个赞科技 网站制作seo 培训教程
  • 大连网站建设优化廊坊seo推广
  • 行业网站建设公司网络营销好不好
  • 可视化网站建设企业文化内容范本
  • 郑州自建网站谷歌查询关键词的工具叫什么
  • 国内做博彩网站代理百度搜索引擎网址格式
  • 网站建设团队架构今日油价92汽油价格调整最新消息
  • wordpress 社会化百度seo公司报价
  • 搜索引擎排名公司网站关键词优化有域名后如何建网站
  • html5网站开发技术谷歌seo培训
  • 建站abc网站建设上海网站建设哪家好
  • 怎样做网站的关键字搜索功能网站seo谷歌
  • 企业网站建设的现状襄阳网站seo
  • 学做网站的书籍网络营销推广策略
  • 制作网站公司 英语网站首页江苏搜索引擎优化公司