gpt4 book ai didi

c++ - SSLSocket setsockopt 返回 10042 和 WSAIoctl 10045

转载 作者:行者123 更新时间:2023-11-30 19:11:50 25 4
gpt4 key购买 nike

我想创建一个安全套接字连接,但出现一些错误。这是代码:

int main(int argc,char *argv[])
{
WSADATA wd;
SOCKET s;
SSLVALIDATECERTHOOK hook;
int secopt=SO_SEC_SSL;

WSAStartup(MAKEWORD(2,2),&wd);
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
setsockopt(s,SOL_SOCKET,SO_SECURE,&secopt,sizeof(secopt));
hook.HookFunc=SSLValCert;
hook.pvArg=NULL;
WSAIoctl(s,SO_SSL_SET_VALIDATE_CERT_HOOK,&hook,sizeof(hook),NULL,0,NULL,NULL,NULL);
/* Some code goes here */
closesocket(s);
WSACleanup();
}

int CALLBACK SSLValCert(DWORD dwType,LPVOID pvArg,DWORD dwChainLen,LPBLOB pCertChain,DWORD dwFlags)
{
return SSL_ERR_OKAY;
}

在此代码中,setsockopt 返回 10042,WSAIoctl 返回 10045。

最佳答案

10042 是 WSAENOPROTOOPT,10045 是 WSAEOPNOTSUPP。它们意味着您尝试使用的功能不受支持。

如果您仔细阅读文档,您会发现仅 WinCE 支持 SO_SECURE。在 Windows 上,如果您希望套接字为您管理安全性,则需要使用 Winsock Secure Socket Extensions相反。

否则,请使用在标准套接字之上运行的 SSL/TLS 库,例如 Microsoft 的 SChannel ,或像 OpenSSL 这样的第三方库.

关于c++ - SSLSocket setsockopt 返回 10042 和 WSAIoctl 10045,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38930246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com