Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350845
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:25

问题如上,代码简化如下:
void ser_thread(void * iparam)
{
AfxSocketInit();
//class cser:public csocket
cser *a;
a->create(7777,"127.0.0.1");
a->listen(5);
......
}
void cli_thread(void * iparam)
{
AfxSocketInit();
//class ccli:public csocket
ccli *b;
b->create();
b->connect("127.0.0.1",7777);
....
}

//OnAccept未被调用
void cser::OnAccept(int c)
{
AfxMessageBox("OnAccept",MB_OK,0);
CSocket::OnAccept(c);
}

//将ser_thread改为
void ser_thread(void * iparam)
{
AfxSocketInit();
//class cser:public csocket
cser *a;
a->create(7777,"127.0.0.1");
a->listen(5);
CSocket d;
if(a->accept(d))
{
AfxMessageBox("Accept",MB_OK,0);//可以被调用
}
}
//如将下面代码放入主线程的OnInitDialog中就可以正常调用OnAccept,请问这是为身摸,如何才能在线程中正常使用
AfxSocketInit();
//class cser:public csocket
cser *a;
a->create(7777,"127.0.0.1");
a->listen(5);



--------------------next---------------------

阅读(1215) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~