CAsyncSocket 客户端如何连接服务器 以及 如何判断客户端已经连接上服务器?

djfu 2005-06-09 09:03:18
RT
...全文
223 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxrl 2005-06-09
  • 打赏
  • 举报
回复
代码
if(m_AcceptSocket->Create(0))
{
IsCreated = true;
lpRemoteIP = RemoteIP;
siRemotePort = RemotePort;
//下面你加一个错误接收就行了 和上面一样
if(m_AcceptSocket->Connect(RemoteIP,RemotePort))
{
clientReqData.cRequestType = *InstructionName;
clientReqData.m_picID = picIndex;
m_AcceptSocket->Send(&clientReqData,sizeof(clientReqData));
}
}
Kudeet 2005-06-09
  • 打赏
  • 举报
回复
你可以在MSDN里搜索“MFCAsync”
Kudeet 2005-06-09
  • 打赏
  • 举报
回复
从CAsyncSocket派生类的OnConnect函数里判断。
class CConnectSoc : public CAsyncSocket
{
virtual void OnConnect( int nErrorCode );
};

void CConnectSoc::OnConnect( int nErrorCode )
{
OutputDebugString(_TEXT("CConnectSoc::OnConnect\n"));
if (nErrorCode == 0)
//连接成功,通知主窗口
else
//连接失败 }
CAsyncSocket::OnConnect(nErrorCode);
}
djfu 2005-06-09
  • 打赏
  • 举报
回复
应该是在CAsyncSocket::OnConnect事件中根据ErrorCode进行判断。

在Connect以后不能马上根据其返回值判断,那样结果不正确。
fanxuehai 2005-06-09
  • 打赏
  • 举报
回复
客户端通过CAsyncSocket::Connect(LPCTSTR lpszHostAddress, UINT nHostPort)进行连接服务器;在调用Create函数进行Socket创建时提请一个“FD_CONNECT”事件,在CConnectSoc类中重载OnConnect函数,if (nErrorCode==0)

m_bConnected=TRUE;//表示成功连接

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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