小弟初学SOCKET编程,请教个问题

wjb_yd 2010-07-15 11:04:21
一个server可以接受n个client的请求,每建立一个请求时,都会在一个新的socket上收发信息。
我想问的是,是不是server每次建立一个新的请求时,都应该新创建一个线程专门负责接受这个socket上的消息?
像这样:
{code}
while (1)
{
SOCKET sockConn = accept(sockServer, (SOCKADDR *)&addrClient, &len);
// 这里,创建一个线程专门在sockConn上接受数据包并负责处理数据包
}
{code}
如果是的话,那server上得创建多少线程啊~~~
如果不是的话,单线程如何解决随时可能到来的新的客户端请求以及随时到来的新的客户端数据包的问题?
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dulvtianya 2010-07-15
  • 打赏
  • 举报
回复
CAsyncSocket非阻塞模型,这个用起来比较简单,派生自己写的服务器和客户端socket稍微加点东西就能用
kemee 2010-07-15
  • 打赏
  • 举报
回复
要么线程池管理,要么重载CAsyncSocket非阻塞模型,自己建个数据结构保存维护连接的socket
Eleven 2010-07-15
  • 打赏
  • 举报
回复
是这样的,一个线程维护和一个客户端的通讯,不过这样效率性能不好,可以使用IOCP完成端口IO模型

18,356

社区成员

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

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