有谁知道ios4是否支持unix域套接字?

时间:2010-10-29 20:43:06

标签: sockets ios4

以下工作在OSX 10.6上没有错误,但在使用SDK 4.1的iphone模拟器中失败

#include <arpa/inet.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <netinet/tcp.h>
#include <sys/un.h>
#include <string.h>

int main(void) {

    int sock = socket(AF_UNIX, SOCK_DGRAM, 0);

    struct sockaddr_un sock_addr;

    memset(&sock_addr, 0, sizeof(struct sockaddr_un));

    sock_addr.sun_family = AF_UNIX;
    strcpy(sock_addr.sun_path, "/tmp/sock");

    int err = bind(sock, (struct sockaddr*)&sock_addr, sizeof(struct sockaddr_un));
    if(err == -1) {
        perror("bind: ");
    }
}

错误是“协议族不支持的地址族”

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你真的需要检查袜子 - 最有可能的是,套接字创建已经失败了。

我的猜测是不支持AF_UNIX / SOCK_DGRAM;尝试SOCK_STREAM。