select模型的问题。

crosoli 2011-09-20 04:01:12
首先,服务端,我想创建2个线程,一个线程主要是accept,一个线程就是接受数据。用2个while(true)

开始,启动服务端CPU100%

后来,把代码改了改。 让2个线程并发。创建实践对象。

//创建一个自动复原的事件对象。
m_hEvent = CreateEvent(NULL,false,false,NULL);


线程1:
while (TRUE)
{
if(WaitForSingleObject(pThis->m_hEvent,1000)==WAIT_OBJECT_0)
break;
sClient = accept(pThis->m_socListen, (struct sockaddr *)&client, &iaddrSize);
.............

}

线程2:
while (TRUE)
{
//
if(WaitForSingleObject(pThis->m_hEvent,1000)==WAIT_OBJECT_0)
break;
FD_ZERO(&fdread);
............
ret = recv(pThis->g_CliSocketArr[i], szMessage, MSGSIZE, 0);

}


这样有什么逻辑错误呢?
...全文
63 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
crosoli 2011-09-20
  • 打赏
  • 举报
回复
我用了事件对象不是一样么?
ljn398431 2011-09-20
  • 打赏
  • 举报
回复
两个程序并发应该弄个互斥对象

18,356

社区成员

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

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