나는 getsockopt
함수를 사용하여 MSS를 얻으면 문제가 발생합니다. 음수 (또는 0)가 있습니다. 하지만 함수가 성공하면 소켓은 올바른 값인 hSocketService
이 정확하고 작동합니다.getsockopt가 음수 mss (CLion 상)
그래서 내가 가지고 : 나는 코드를 실행하는거야 것을 정확한 깜빡
int tailleMsgRecu, nbreBytesRecus, finDetectee, tailleS, tailleO;
/* 7. Recherche du MTU -*-Mache pas-*-*/
tailleO=sizeof(int);
if (getsockopt(hSocketService, IPPROTO_TCP, TCP_MAXSEG, &tailleS, &tailleO) == -1)
{
printf("Erreur sur le getsockopt de la socket %d\n", errno);
exit(1);
}
else
{
printf("getsockopt OK\n");
printf("Taille maximale d'un segment = %d\n", tailleS);
}
감사
편집 : 여기
getsockopt OK Taille maximale d'un segment = -13312
코드입니다 Cygwin을 Clion과 함께 사용하는 Windows. 는 I 코드를 변경하고 현재 tailleS
socklen_t
형이며, 그 결과는이다 Taille maximale d'un segment = 0
printf("Taille maximale d'un segment = %u\n", tailleS);
으로 그 값을 인쇄. 문제가 여전히 동일하므로 getsockopt가 작동하고 있어도 올바른 가치를 얻지 못합니다. 당신은, 그러나, 부호있는 정수를 사용합니까 -
이라는 것을 알고있을 것 너 이걸 시도해? 소켓이 연결되어 있습니까? – EJP