问一个关于CAsyncSocket的问题!

gigi_andy 2002-04-02 02:02:57
对于CSocket来说,客户端向服务端发送Connect请求时,如果服务端已经在Listen,Connect函数应该立即返回True值,可对CAsyncSocket确不是这样,Connect返回0,即使Connect已经成功,MSDN上说会发回一个OnConnect的消息,可我现在需要用Connect函数的返回值来做判断条件,请教高手应该如何在保证确实连接上的基础上使它返回1呢?
或者提供另一种解决方法,能保证我能确实的判断Connect执行是否成功,谢谢!
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
horris 2002-04-03
  • 打赏
  • 举报
回复
CAsyncSocket::Connect返回TRUE,则连接立即建立,返回FALSE,看CAsyncSocket::GetLastError以确定是延迟建立还是出错。
horris 2002-04-03
  • 打赏
  • 举报
回复
CAsyncSocket::Connect返回TRUE,表示连接立即建立,而FALSE时,要看CAsyncSocket::GetLastError返回值,判断是等待连接还是出错。
horris 2002-04-03
  • 打赏
  • 举报
回复
用WSAConnect,看它的返回值。
ychener 2002-04-02
  • 打赏
  • 举报
回复
CAsyncSocket 是异步Socket了

那么Connect就不能以马上返回为是否连接上的标志

一般情况去连接的Socket至少有三个状态(Open Close 和 Connect)

判断Socket是否已经连接上应该以CAsyncSocket::OnConnect事件发生为主
gigi_andy 2002-04-02
  • 打赏
  • 举报
回复
大哥,这段话我看了无数遍了!关键是我要让Connect在确认连接后能返回1,即使这个功能无法实现,那我需要能解决这个问题的另一种方法!
但愿我表达的够清楚明白,呵呵~~~
白驼山宋兵甲 2002-04-02
  • 打赏
  • 举报
回复
Nonzero if the function is successful
vcguy 2002-04-02
  • 打赏
  • 举报
回复
CAsyncSocket::Connect
BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort );

BOOL Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen );

Return Value

Nonzero if the function is successful; otherwise 0, and a specific error code can be retrieved by calling GetLastError. If this indicates an error code of WSAEWOULDBLOCK, and your application is using the overridable callbacks, your application will receive an OnConnect message when the connect operation is complete.

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧