我必须通过udp套接字发送多个变量类型:int数组和char . 我想在同一个udp数据包上发送它 . 什么是标准解决方案?将所有内容转换为字节或类似内容?
我正在使用:sendto(int sockfd,const void * buf,size_t len,int flags,const struct sockaddr * dest_addr,socklen_t addrlen);
我的代码是这样的:
int buffer[100];
char flag = '0';
int i = 0;
for (i = 0; i < 50; i++) {
buffer[i] = i * 2;
}
if (sendto(s, buffer, sizeof(buffer), 0, (struct sockaddr *) &si_client, slen) == -1 ){
//error
}
//rest of the program
1 回答
是的,您需要将消息序列化为字节数组 . 没有
sendto
的版本接受int
数组 . 尝试这样的事情:请注意,您的消息仍可能作为多个数据包发送,例如,如果其大小超过路径MTU .