getsockname返回错误22,无效参数

时间:2015-02-12 10:15:52

标签: c sockets embedded

我们使用UDP上的IPV4套接字连接。

 struct sockaddr_in   LocalSin;  
     int n_namelen ;
     memset( &LocalSin, 0, sizeof(LocalSin) );
     LocalSin.sin_family = AF_INET;
     LocalSin.sin_port = htons(1050);
    socketS = socket(AF_INET, SOCK_DGRAM, 0);
     if ( bind(socketS, (struct sockaddr *)&LocalSin, sizeof(struct sockaddr_in)) != RTCS_OK  )
          {
    //socket bind error
        }
n_namelen = sizeof(struct sockaddr_in);
        if ( getsockname( socketS, (struct sockaddr *)&LocalSin,(socklen_t *) &n_namelen) != RTCS_OK)
          {
    //getsockname error
    }

这里socket函数成功,绑定也成功,但是,getsockname失败,错误22,偶尔(大部分),但成功几次..环境是Linux 3.0.35。有什么建议吗?

注意:操作系统启用了IPV6和IPV4

注意 - 进度:sizeof(struct sockaddr_in)为16.当我们在in.h中检查它的定义时,它永远不会出现。任何线索?

0 个答案:

没有答案