Я пытаюсь создать сокет 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 (). Я думаю, это второй аргумент этой функции, хотя я не уверен.
Любая помощь будет оценена.
Спасибо