gpt4 book ai didi

c - 如何在没有 while 循环的情况下使用 nanomsg 调查架构?

转载 作者:太空狗 更新时间:2023-10-29 15:40:22 27 4
gpt4 key购买 nike

我正在研究 nanomsgIPC 的使用,并想使用 SURVEY -原型(prototype)架构描述here .
在此过程中,进程作为客户端和服务器运行并交换数据。现在服务器有以下代码(也在提供的链接中列出):

int server (const char *url)
{
int sock = nn_socket (AF_SP, NN_SURVEYOR);
assert (sock >= 0);
assert (nn_bind (sock, url) >= 0);
sleep(1); // wait for connections
int sz_d = strlen(DATE) + 1; // '\0' too
printf ("SERVER: SENDING DATE SURVEY REQUEST\n");
int bytes = nn_send (sock, DATE, sz_d, 0);
assert (bytes == sz_d);
while (1)
{
char *buf = NULL;
int bytes = nn_recv (sock, &buf, NN_MSG, 0);
if (bytes == ETIMEDOUT) break;
if (bytes >= 0)
{
printf ("SERVER: RECEIVED \"%s\" SURVEY RESPONSE\n", buf);
nn_freemsg (buf);
}
}
return nn_shutdown (sock, 0);
}

由于套接字类型是 NN_SURVEYORwhile 循环不会在 nn_recv 处等待。对于客户端,套接字类型是 NN_RESPONDENT,因此,客户端中的 while 循环在 nn_recv 处等待。

现在,由于这个 while 循环连续无限地运行,CPU 使用率飙升至 99%。你能告诉我有没有其他方法可以使用 nanomsg 制作调查架构。

最佳答案

如果没有收到,尝试在循环末尾添加 yield() 调用。

关于c - 如何在没有 while 循环的情况下使用 nanomsg 调查架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com