CAsyncSocket::Connect(LPCTSTR lpszHostAddress, UINT nHostPort)返回值一直是0?

MFC编写聊天程序,在Client进行连接时,使用CAsyncSocket::Connect(LPCTSTRlpszHostAddress,UINTnHostPort);... MFC编写聊天程序,在Client进行连接时,使用CAsyncSocket::Connect(LPCTSTR lpszHostAddress, UINT nHostPort);无论连接成功与否总是返回0;请问 我如何得到诸如WSANOTINITIALISED ...的值?
如果我连接成功的话,GetLastError会返回什么数值呢?现在无论连接成功还是失败,我的返回值都是WSAEWOULDBLOCK。无比纠结中。
展开
 我来答
starfar1983
2010-12-10 · TA获得超过2258个赞
知道小有建树答主
回答量:692
采纳率:0%
帮助的人:1041万
展开全部
CAsyncSocket::Connect()成功了就返回1,失败就返回0.
如果返回0,你马上再调用GetLastError(),GetLastError()会返回类似WSANOTINITIALISED 的值。
如果连接成功,GetLastError()会返回0.返回WSAEWOULDBLOCK说明没成功。

这里有篇博客解释了为什么有产生WSAEWOULDBLOCK错误:http://blog.csdn.net/strikebone/archive/2007/08/30/1765839.aspx

博客里提到的解决办法是处理FD_WRITE消息,但如果你是用MFC,更简单的办法是重载CAsyncSocket::OnSend()方法,在这个函数里发送数据。

给你找了这么多资料,给我多加些分吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式