2010-12-21 53 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