求解Win7 VS2008创建socket失败,异常号10106
求解Win7 VS2008创建socket失败,错误号10106
真是奇怪呀,我用的是Win7 32旗舰版系统,刚打的VS2008 SP1补丁,
以为打完SP1补丁后创建socket就不会出现问题了,没打补丁之前,我创建socket也是失败的。
谁知道打完补丁问题依旧。
说下我的情况:
无论是否以管理员身份运行VS2008,在VS2008中运行工程时,创建socket都会失败,
错误号为10106。
而我直接到生成程序的Debug目录或Release目录,运行程序则创建socket成功,一切正常。
这真是奇怪了,我想问题是出在VS2008上面了,网上查了很久,无果。
望知道原因的盆友给解释一二呀。
贴下,我创建socket的代码:
在VS2008中运行程序,错误截图如下:

到生成程序的Debug目录直接运行程序,则成功:


------解决方案--------------------
http://blog.****.net/wjtxt/article/details/10500817
真是奇怪呀,我用的是Win7 32旗舰版系统,刚打的VS2008 SP1补丁,
以为打完SP1补丁后创建socket就不会出现问题了,没打补丁之前,我创建socket也是失败的。
谁知道打完补丁问题依旧。
说下我的情况:
无论是否以管理员身份运行VS2008,在VS2008中运行工程时,创建socket都会失败,
错误号为10106。
而我直接到生成程序的Debug目录或Release目录,运行程序则创建socket成功,一切正常。
这真是奇怪了,我想问题是出在VS2008上面了,网上查了很久,无果。
望知道原因的盆友给解释一二呀。
贴下,我创建socket的代码:
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
if (sockSrv==INVALID_SOCKET)
{
CString err;
err.Format(_T("新建Socket失败! WSAGetLastError=%d,GetLastError=%d"),WSAGetLastError(),::GetLastError());
AfxMessageBox(err);
WSACleanup();
return;
}
AfxMessageBox(_T("新建Socket成功!"));
在VS2008中运行程序,错误截图如下:
到生成程序的Debug目录直接运行程序,则成功:
10106
socket
创建socket失败
VS2008
MFC
------解决方案--------------------
http://blog.****.net/wjtxt/article/details/10500817