簡體   English   中英

如何在 udp 服務器(在 c 中)和 udp 客戶端(python)之間發送和接收 c 結構?

[英]how to send and recv c struct between udp server(in c) and udp client(python)?

我有這個結構

struct Data
{
      int id;
      int msglen;
      char msg[100];
}

我需要在 udp 服務器和 udp 客戶端之間傳遞這個結構。udp 客戶端是基於 Z23EEEB4347BDD26BDDFC6B7EE 的。

首先,您需要將結構數據編碼到單個二進制緩沖區中

#include <endian.h>
...
struct Data d { ... };

uint32_t be_id = htobe32(d.id);
uint32_t be_len = htobe32(d.msglen);

size_t pos = 0;
uint8_t buf[sizeof(struct Data)];

memcpy(buf, (const void *)&be_id, sizeof(be_id));
pos += sizeof(be_id);

memcpy(buf + pos, (const void *)&be_len, sizeof(be_len));
pos += sizeof(be_len);

memcpy(buf + pos, (const void *)d.msg, sizeof(d.msg));

然后發送緩沖區,並從另一端解析它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM