zeromq請求應答 REQ REP

2021-08-19 18:27:42 字數 1686 閱讀 7439

// 非執行緒安全

zmq_socket

void*  zmq_socket(void* context, int type);

該api 會根據

context , type 

建立乙個不透明的套接字控制代碼

.  並且是沒有初始化連線的

也沒有和任何埠聯絡在一起,如果是客戶端

,這時就需要用

zmq_connect 

去連線到伺服器

如果是伺服器,需要去用

zmq_bind api

去繫結埠.

與傳統套接字不同的是 ,傳統套接字不是流協議

,就是報文協議

而zmq 的套接字提出了 非同步訊息佇列

,並且伴隨著準確的佇列語義

, 前面的實現依賴於

type,也就是不同的使用套接字型別

而zmq傳輸的是無保障的訊息

context : 可以從 

zmq_ctx_new() api 獲取

type: 表示的是你需要建立的是何種套接字型別

type:

請求-應答模型

(zmq-req)

該模型是被用作

從乙個客戶端傳送請求到乙個或者是多個伺服器,然後伺服器對每個請求做出請求.

如果沒有伺服器存在,客戶端會組則

, 直到有乙個伺服器變成可用狀態為止

,其伺服器操作是 

zmq_recv, zmq_send.

即交替使用

,很適合用於

伺服器.

對於客戶端來說,需要先

send, 

再 recv

exqmple:

#include

#include

extern

"c"

#pragma

comment(lib,"libzmq_d.lib")

#define

buffersize 4096

int main(int

argc, char* argv)

;int ret = 0;

char* str = "我是客戶端.....";

while (true)

system("pause");

zmq_close(server);

zmq_ctx_destroy(ctx);

return 0;

}zmq_rep模式

該模型用於

伺服器去接受請求, 並對接受的請求做出相應的套接字模式 , 即先 recv, 再 send

example :

#include

#include

extern

"c"

#pragma

comment(lib,"libzmq_d.lib")

#define

buffersize 4096

int main(int

argc, char* argv)

;int ret = 0;

char* str = "我是客戶端.....";

while (true)

system("pause");

zmq_close(server);

zmq_ctx_destroy(ctx);

return 0;

}

HTTP請求和應答

1 請求方法 get 是請求方法,表示客戶端以唯讀的方式來申請資源。不對伺服器產生任何其他影響。post 客戶端向伺服器提交資料的方法,這種方法會影響伺服器 伺服器可能根據收到的資料動態建立新的資源,也可能更新原有的資源 get http 1.0 以唯讀的方式申請資源 user agent wget...

DMA 請求 應答協議

這裡主要講述4種型別的dma請求 應答協議。在握手模式下,乙個單獨的dma請求訊號對應乙個dma應答訊號。而且在該模式下,一次dma操作意味著在dma操作中的一對或不可分的讀和寫週期。在dma操作中,匯流排控制器不能把 匯流排的使用權分配給其他匯流排控制者。如果想在dma操作中響應高優先順序的匯流排...

HTTP請求 應答規則

http協議引數 http版本 允許使用的三種時間戳格式 內容編碼值 content coding token 大小寫不敏感 在頭部的accept encoding和content encoding中使用,當前在iana註冊的token值為 gzip 編碼格式來自檔案壓縮程式 compress de...