我试图通过接收一个recvfrom的数据包的一部分。 实际上,它的工作原理是这样的:
recvfrom(sockfd, serialised_meta, 12, flags, src_addr, addrlen);
recvfrom(sockfd, serialised_buf, BUFLEN, flags, src_addr, addrlen);
该数据被发送这样的:
bufd->Serialise(serialised_buf, BUFLEN+12);
sendto(sockfd, serialised_buf, BUFLEN+12, flags, dest_addr, addrlen);
这样的想法是先读一些元数据,然后决定是否接收别的东西。 的问题是,我接收4“/μ0”字节开头,如果第二缓冲器(serialised_buf)。 它似乎并没有被序列化的问题,我以前用我的系列化,各方面都很冷静,而我是在一次接收整个数据包(元和数据)。 关于如何可以固定任何想法?
PS。 我明白我可以跳过不必要的字节)但无论如何,它为什么会发生?