【问题标题】:Does send() allow you to pass an int array Csend() 是否允许您传递一个 int 数组 C
【发布时间】:2015-11-09 15:42:59
【问题描述】:
我正在尝试在一个简单的服务器-客户端聊天程序中发送加密消息。
这是send() 电话:
int send(int sockfd, const void *msg, int len, int flags);
我可以将int 数组作为*msg 传递吗?
【问题讨论】:
标签:
c
network-programming
send
【解决方案1】:
我认为您可以使用send() 系统调用。但请注意,len 是消息的字节长度。所以我认为是 5 个int 的数组。您需要将len 指定为5*(sizeof(int))。
此外,在接收方,您需要相应地对其进行解释。
正如 Naveen 指出的那样,here 已经为您的问题提供了更详细的答案。
【解决方案2】:
是的,您可以将ints 的数组传递给send()。允许您这样做的原因是数组在传递给函数时会自动转换为指针。见this previous question。
此外,如有必要,C 中的任何指针都可以自动转换为void *。 void 指针旨在提供隐式转换。