这是我的问题, rcvfrom() 参数之一是 char * ,一旦我从中获取数据,我想将其转换为结构。然而选角并不成功。我究竟做错了什么?
这是我所做的:
struct {
int8_t seq;
int8_t ack;
bool flag;
char data[payload];
}r_pckt;
//...bunch of codes
char *buf = NULL;
buf = (char *)malloc (sizeof(char) * MTU);
memset(buf, 0, MTU);
//...
res = recvfrom(socket_fd, buf, MTU, 0,(struct sockaddr *) &cli_addr, (socklen_t *)&cli_len);
//..
r_pckt *tmp_pckt = (struct r_pckt *) &buf;
但它不起作用。有任何想法吗?
谢谢。
typedef struct {
int8_t seq;
int8_t ack;
bool flag;
char data[payload];
} r_pckt;
上面使 r_pckt 成为一个类型,而不是一个变量。然后,
r_pckt *tmp_pckt = (struct r_pckt *) &buf;
应该
r_pckt *tmp_pckt = (r_pckt *) buf;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)