以下工作在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: ");
}
}
错误是“协议族不支持的地址族”
有什么想法吗?
答案 0 :(得分:0)
你真的需要检查袜子 - 最有可能的是,套接字创建已经失败了。
我的猜测是不支持AF_UNIX / SOCK_DGRAM;尝试SOCK_STREAM。