主题:[讨论]WinSocket编程问题
我在Tracerout代码的基础上添加代码,让其实现能发现PMTUD的功能。但在修改的过程中遇到点问题请教大家:
int CIcmp::SetIpDF(void)
{
int Result;
BOOL DF=TRUE;
//获得套接口选项,成功则返回值为0
Result = setsockopt (icmpSocket, IPPROTO_IP, IP_DONTFRAGMENT, (LPSTR)&DF, sizeof(BOOL));
if (Result == SOCKET_ERROR)
{
icmpSocketErrorMod = 1;
icmpSocketError = WSAGetLastError();
}
return Result;
}
上面是我加的函数用以对IP数据报的DF置位,而且返回值也表明置位成功,在运行时这个函数没奏效,没能发现MTU.请教大家该怎么改?
谢谢
int CIcmp::SetIpDF(void)
{
int Result;
BOOL DF=TRUE;
//获得套接口选项,成功则返回值为0
Result = setsockopt (icmpSocket, IPPROTO_IP, IP_DONTFRAGMENT, (LPSTR)&DF, sizeof(BOOL));
if (Result == SOCKET_ERROR)
{
icmpSocketErrorMod = 1;
icmpSocketError = WSAGetLastError();
}
return Result;
}
上面是我加的函数用以对IP数据报的DF置位,而且返回值也表明置位成功,在运行时这个函数没奏效,没能发现MTU.请教大家该怎么改?
谢谢