2010-12-21 52 views
0

我想创建一个sctp套接字,然后使用sctp_opt_info()检索套接字选项信息。协议特定的套接字创建和套接字选项信息

我成功地能够创建特定的套接字,但套接字选项检索我得到的值为-1指示一些错误。该错误是由于sctp_opt_info()的无效参数。

有人可以指导我什么是错的。为什么我得到-1这个电话,而不是0(成功指示器)

int socket_desc; 
struct sockaddr_in sin[1]; 
unsigned int len; 
int val1,val2; 
char s[100]; 

struct sctp_rtoinfo { 
    sctp_assoc_t srto_assoc_id; 
    uint32_t  srto_initial; 
    uint32_t  srto_max; 
    uint32_t  srto_min; 
}rto; 


socket_desc=socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); 
if (socket_desc==-1) 
    printf("Socket Fail"); 

val1 = sctp_opt_info(socket_desc,IPPROTO_SCTP,SCTP_RTOINFO,&rto,&len); 

printf("Erro : %d, \n", errno); 
perror(s); 
printf("Status opt info: %d\n",val1); 

我得到的val1值为-1指示一些问题。 perror表示sctp_opt_info()的参数无效。我的猜测是这个函数的参数二,但不知道。

任何帮助将不胜感激。

感谢

回答

1

len,以sctp_opt_info()最后一个参数是一个值结果参数。您必须至少将其初始化为您传递的参数长度,

len = sizeof rto; 
+0

感谢您的帮助:) – learner 2010-12-22 06:00:21