如何创建多客户的AsyncSocket连接?

winst 2003-12-04 08:46:10
void CMySockect::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
if(!Accept(m_sConnect[n]))这里是不是要采用数组形式
{
AfxMessageBox("fail",4);
}
m_sConnect[n].Send("1",3);
//CAsyncSocket::OnAccept(nErrorCode);
}
AsyncSocket默认的是阻塞还是非阻塞?
在什么情况下激活OnSend函数?
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chyy80525 2003-12-08
  • 打赏
  • 举报
回复
在CMySockect类中加两个变量:
CPtrList connectList;
sockaddr_in client;
然后重载
void CMySockect::OnAccept(int nErrorCode)
{
CMySocket *m_sConnect=new CMySocket;
int iSize=sizeof(m_sConnect->client);
if(Accept(m_sConnect,(struct sockaddr *)&m_sConnect->client,&iSize))
{
connectList.AddTail(m_sConnect);
}
else
{
AfxMessageBox("fail",4);
}
m_sConnect.Send("1",3);
CAsyncSocket::OnAccept(nErrorCode);
}

然后在CMysocket的析构函数中写上
CMysocket::~CMysocket()
{
CMysocket *temp;
POSITION pos;
pos=connectList.GetHeadPosition();
while(pos!=NULL)
{
temp=(CMysocket*)connectList.GetNext(pos);
temp->close();
delete temp;
temp=NULL;
}
}

sboom 2003-12-08
  • 打赏
  • 举报
回复
为每个客户连接创建一个socket,用链表连起来,断开连接时删除释放。
winst 2003-12-08
  • 打赏
  • 举报
回复
我的中心问题是怎么创建多客户连接
andy_lau 2003-12-04
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2527/2527564.xml?temp=.9213526
DuMiYue 2003-12-04
  • 打赏
  • 举报
回复
1。非阻塞
2。默认情况下连接一建立就会发出OnSend,如果不想它发生可以:在创建Socket时去掉FD_WRITE

BOOL Create(
UINT nSocketPort = 0,
int nSocketType = SOCK_STREAM,
long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
LPCTSTR lpszSocketAddress = NULL
);
checkyvc6 2003-12-04
  • 打赏
  • 举报
回复
在输出缓冲区有数据的时候触发
phalcon 2003-12-04
  • 打赏
  • 举报
回复
非阻塞

18,356

社区成员

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

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