【问题标题】: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 指针旨在提供隐式转换。

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2021-07-29
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多