gpt4 book ai didi

c++ - 我通过函数 SENDTO 通过套接字(c++)发送结构并由 RECVFORM 接收,但总是得到一些垃圾值

转载 作者:行者123 更新时间:2023-11-28 08:08:56 26 4
gpt4 key购买 nike

嘿,我正在开发一个工具 NCTUns。在这里,我通过 sendto 函数发送结构。

我的结构-

struct agentClientReportStatus{ 
u_int32_t type;
u_int32_t nid;
double timeStamp;
int flag;
u_int32_t moreMsgFollowing;
double x;
double y;
double x1;
double y1;
double acceleration;
double speed;
double direction;
int TTL;
int seqNum;
}

和功能是 -

 n = sendto(myUDPsockfd, msg, sizeof(struct agentClientReportStatus), 0, (struct sockaddr *) &cli_addr, len); 
n = recvfrom(myUDPsockfd, (char *)&msg, sizeof(struct agentClientReportStatus), 0, (struct sockaddr *) &cli_addr, &len);

在发送部分,当我打印一些值时,它会给出正确的输出。但在接收部分我得到了垃圾值(value)。是否可以在不序列化的情况下发送?如果没有,我该如何进行序列化?

msg 属于- agentClientReportStatus *msg; msg = new agentClientReportStatus;

最佳答案

接收者可以有

  • 不同的内存对齐方式
  • 不同的字节顺序(处理字节顺序的有用函数是htonlntohl 等)
  • 不同大小的标准 c 类型

所以回答 - 是的,你应该使用序列化

关于c++ - 我通过函数 SENDTO 通过套接字(c++)发送结构并由 RECVFORM 接收,但总是得到一些垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com