0
我有兩個簡單的程序:客戶端和服務器。我試圖使用zstr_sendfm和zstr_recv來發送和接收簡單的字符串。粗略地說,我在zeromq教程中使用file transfer test中的代碼。這裏的服務器功能:C ZeroMQ zstr_recv掛起
#define PIPELINE = 10;
int server()
{
char *name = "someName";
zctx_t *ctx = zctx_new();
void *router = zsocket_new(ctx, ZMQ_ROUTER);
zsocket_set_hwm(router, PIPELINE*2);
if (0 == zsocket_connect(router, tcp://127.0.0.1:6000))
{
printf("failed to connect to router.\n");
}
printf("sending name %s\n, name);
zstr_sendfm(router, name);
return 0;
}
這裏的客戶端功能:
int client()
{
zctx_t *ctx = zctx_new();
void *dealer = zsocket_new (ctx, ZMQ_DEALER);
zsocket_bind(dealer, "tcp://*:6000")
char *receivedName = zstr_recv(dealer);
printf("received the following name: %s\n", receivedName);
return 0
}
這兩種在兩個獨立的程序(什麼都不做不是運行在各自的職責等)在同一臺計算機上運行。
這裏的東西怎麼老是打出來:
- 啓動客戶端功能,它保存在「zstr_recv」因爲它應該
- 啓動服務器功能,連接成功,聲稱發送的數據,退出
- 客戶端功能繼續等待,但聲稱沒有收到來自服務器的任何內容。
我在這裏錯過了什麼?我添加了一堆錯誤檢查,甚至在gdb中嘗試了這一點,但沒有運氣。
幫助和建議表示讚賞。