4

我有

  #include <sys/socket.h>
   recvfrom(s, dgram, sizeof(dgram), size, (struct sockaddr*)&adr, &x);

我没有收到在 iOS 中调用 recvfrom 的匹配函数。但 Xocde 确实展示了原型

 recvfrom(int, void*, size_t, int, struct sockaddr *, socklen_t*)

那么,为什么 Xcode 在 recvfrom 上没有给出匹配函数错误呢?

4

3 回答 3

7

很可能其中一个参数的类型不正确。尝试使用 gcc 通过终端编译代码以获得更好的错误消息。出于某种原因,Xcode 对这一点真的很模糊。

确保您的第 6 个参数中的 x&x是“socklen_t *”(又名“unsigned int *”),而不是 int。这就是导致我收到此错误的原因。

于 2014-03-13T21:17:09.280 回答
2

对 x 使用 socklen_t

socklen_t x = sizeof(servaddr);
uint8_t buffer[1024];

long nBytes = 
     recvfrom(socket, buffer, 1024, 0, (struct sockaddr *) &servaddr, &x)
于 2019-02-19T09:27:41.907 回答
0

您需要libc.dylib在目标的Link Binary With Libraries构建阶段链接库。

于 2013-09-23T18:33:04.830 回答