我们使用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中检查它的定义时,它永远不会出现。任何线索?