4
我所經歷的nanomsg
使用率IPC
,並想用SURVEY
-archetype架構描述here。
在這裏,進程作爲客戶端和服務器運行並交換數據。現在服務器已經下面的代碼(在所提供的鏈接也列):如何在沒有while循環的情況下使用nanomsg調查架構?
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_SURVEYOR
,將while
-loop根本不nn_recv
等待。對於客戶端,套接字類型爲NN_RESPONDENT
等等,而客戶端中的循環等待在nn_recv
。
現在,由於while循環連續無限運行,CPU使用率高達99%。您能否告訴我,是否有其他方式可以使用nanomsg
來製作調查架構。