+ -
当前位置:首页 → 问答吧 → 本地套接字结构sockaddr_un,bind()失败不知道为什么

本地套接字结构sockaddr_un,bind()失败不知道为什么

时间:2011-10-28

来源:互联网

代码如下:
  int iLocalSockfd = 0;
int iSocketLen = 0;

struct sockaddr_un struServ;


/* 创建套接口 */
if(-1 == (iLocalSockfd = socket(AF_LOCAL, SOCK_STREAM, 0)))
{
perror("error");
iRet = -1;
goto exiterr;
}


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

struServ.sun_family = AF_LOCAL;
strcpy(struServ.sun_path, pLocalPath); //pLocalPath为参数
iSocketLen = OFFSETOF(struct sockaddr_un, sun_path) + strlen(struServ.sun_path);


/* 绑定套接口 */
if(-1 == bind(iLocalSockfd, (struct sockaddr *)&struServ, iSocketLen))
{
perror("error");
iRet = -1;
goto exiterr;
}

不知道为什么,每次换什么sun_path,都会提示Address already in use,这段代码有什么问题吗

作者: jlslhongwei   发布时间: 2011-10-28

path要求不存在这个文件,如果你的文件系统里存在path这个文件,那么bind失败。

作者: qq120848369   发布时间: 2011-10-28