欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c websocket json

林玟書2年前8瀏覽0評論

WebSocket是一種用于在Web瀏覽器和服務器之間進行全雙工通信的協議。WebSocket會在一個瀏覽器和服務器之間建立一條通信管道,允許瀏覽器和服務器之間進行實時雙向數據傳輸。

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它是由JavaScript提出的一種基于文本的格式,易于人閱讀和編寫,同時也易于機器解析和生成。

在C語言中,我們可以使用第三方庫libwebsockets來進行WebSocket通信,并且可以使用JSON來傳輸數據。

//創建WebSocket
struct lws_context *context;
struct lws *wsi;
struct lws_protocols protocol;
memset(&protocol, 0, sizeof(protocol));
protocol.name = "test";
protocol.callback = callback_function;
protocol.rx_buffer_size = 1024;
protocol.user = user_data;
struct lws_client_connect_info connect_info;
memset(&connect_info, 0, sizeof(connect_info));
connect_info.context = context;
connect_info.address = "127.0.0.1";
connect_info.port = 8080;
connect_info.path = "/websocket";
connect_info.protocol = &protocol;
wsi = lws_client_connect_via_info(&connect_info);
//發送JSON數據
int data = 100;
char json_data[1024];
memset(json_data, 0, sizeof(json_data));
cJSON *root = cJSON_CreateObject();
cJSON_AddNumberToObject(root, "data", data);
cJSON_PrintPreallocated(root, json_data, sizeof(json_data), 0);
lws_write(wsi, (unsigned char*)json_data, strlen(json_data), LWS_WRITE_TEXT);
//接收JSON數據
char recv_data[1024];
int n = lws_receive(wsi, (unsigned char*)recv_data, sizeof(recv_data), LWS_WAITING);
if(n >0){
cJSON *json = cJSON_Parse(recv_data);
int data = cJSON_GetObjectItem(json, "data")->valueint;
cJSON_Delete(json);
}

上面的代碼通過libwebsockets創建WebSocket連接,并分別演示了通過JSON發送和接收數據的方法。