send() 是否允许您传递一个 int 数组 C

Does send() allow you to pass an int array C

我正在尝试在一个简单的服务器-客户端聊天程序中发送一条加密消息。

这是 send() 调用:

int send(int sockfd, const void *msg, int len, int flags); 

我可以将 int 数组作为 *msg 传递吗?

我想你可以使用 send() 系统调用。但请注意,len 是消息的 字节长度 。所以我认为 5 int 的数组。您需要将 len 指定为 5*(sizeof(int))

此外,在接收方,您需要相应地解释它。

正如 Naveen 所指出的,对您的问题已有更详细的回答 here

是的,您可以将 int 的数组传递给 send()。你被允许这样做的原因是数组在传递给函数时会自动转换为指针。参见 this previous question

此外,如果需要,C 中的任何指针都可以自动转换为 void *。空指针旨在提供隐式转换。