0

関数getsockoptを使用して MSS を取得すると、負の数 (または 0) が返されるという問題が発生しました。しかし、機能は成功し、ソケットは正しい値であり、正しく機能hSocketServiceしています。

だから私は得た:

getsockopt OK
Taille maximale d'un segment = -13312

コードは次のとおりです。

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);
    }

ありがとう

編集

Clionでcygwinを使用してWindowsでコードを実行していることを正確に忘れていました。

コードを変更したところtailleS、タイプsocklen_tは になり、その値をprintf("Taille maximale d'un segment = %u\n", tailleS); 結果とともに出力するのは ですTaille maximale d'un segment = 0

したがって、問題は同じです。 getsockopt が機能していても、正しい値が得られません。

4

1 に答える 1