C++ socket创建失败?

创建socket时,这里发生错误,返回一个int的最大值,也就是4294967295SOCKETsock=socket(nFamily,nType,0);整体代码是这样的... 创建socket时,这里发生错误,返回一个int的最大值,也就是4294967295
SOCKET sock = socket(nFamily, nType, 0);

整体代码是这样的:
bool CSocketComm::ConnectTo(LPCTSTR strDestination, LPCTSTR strServiceName, int nFamily, int nType)
{
// 如果socket已经打开
// Socket is already opened
if ( IsOpen() )
return false;

SOCKET sock = socket(nFamily, nType, 0); //这里出错——————————
if (INVALID_SOCKET != sock)
{
// Associate a local address with the socket
SockAddrIn sockAddr;
if (false == sockAddr.CreateFrom(NULL, TEXT("0"), nFamily))
{
closesocket( sock );
return false;
}
if ( SOCKET_ERROR == bind(sock, sockAddr, sockAddr.Size() ))

{
closesocket( sock );
return false;
}

// Now get destination address & port
sockAddr.CreateFrom( strDestination, strServiceName );
// try to connect - if fail, server not ready

if (SOCKET_ERROR == connect( sock, sockAddr, sockAddr.Size()))
{
closesocket( sock );
return false;
}

// Success, now we may save this socket
m_hComm = (HANDLE) sock;
}
return (INVALID_SOCKET != sock);
}
展开
 我来答
相思丶猫2C
2014-08-13 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:982万
展开全部
一般正常情况不会返回4294967295,你可以断点跟踪一下

还有,确定你在使用socket之前有初始化socket环境
更多追问追答
追问
这段代码就是初始化的,SOCKET sock = socket(nFamily, nType, 0);

nFamily = AF_INET;
nType = SOCK_STREAM;
追答
在XXXApp类的Init函数中调用 AfxSocketInit()
这个函数才是初始化socket环境,你说的那句是创建socket
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式