请教,网络开发如果客户端很多怎么办?

hwndhwnd 2003-04-25 12:40:55
昨天一个面试题目。
tcp网络开发,服务器端一般的原理是当有一个客户连接上来的时候建立一个线程。
但是当用客户很多的时候,例如10万个同时访问,我的服务器程序应该如何编写。
难道要建立10万个thread??
请求解决方案。
...全文
34 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dudu9157 2003-05-05
  • 打赏
  • 举报
回复
用线程池的办法解决,但不能同时接受那么多连接。
huangbeyond 2003-05-04
  • 打赏
  • 举报
回复
“VC论坛”里可以搜索的。
:)
hwndhwnd 2003-05-04
  • 打赏
  • 举报
回复
那么楼上这位大哥,请问“IO完成端口”
的资料在那里可以找得到呢?
huangbeyond 2003-05-04
  • 打赏
  • 举报
回复
推荐:“IO完成端口”!!

再说了,“IO完成端口”本来就是线程池的一种具体实现方法而已,只不过是由系统进行管理和支配而已。信不信得过,看你自己了。

我在单位测试过:
P2-350,WIN2KServer,128M,连接4000都比较轻松.
sssxueren 2003-04-27
  • 打赏
  • 举报
回复
iis这类的线程池的具体操作怎样的呢?通过select来获得输入流数据吗?
菜牛 2003-04-25
  • 打赏
  • 举报
回复
每个服务器如果支持1000个线程的话,用100台服务器就够了。
JJONY 2003-04-25
  • 打赏
  • 举报
回复
IIS就是线程池来处理的。它处理的事情多着呢, 不只是客户端的连接还有COM ASP script之类的
事。

除了IIS, J2EE我也看过一些吹牛的文章他们也有这方面的问题, 也是采用程序池的方法。
sssxueren(xueren) 说的也是,完成端口也是为了处理这些问题而产生的。 不过就是把控制权交给了操作系统罗, 相信自己还是相信别人(这不是一般的人哦)?
hanzp 2003-04-25
  • 打赏
  • 举报
回复
呵呵,来学习
hwndhwnd 2003-04-25
  • 打赏
  • 举报
回复
感谢楼上各位,
支不支持在另当别论,IIS那样的Web服务器是如何做的呢?
uhlan 2003-04-25
  • 打赏
  • 举报
回复
线程池
sssxueren 2003-04-25
  • 打赏
  • 举报
回复
tcp支持10万用户同时连接吗?SOCKET不是一个到65535的数吗?

完成端口能支持到多少?我做了测试,500个客户端线程,每个线程5次连接发消息,服务器4个线程,还可以接受的速度,p3的机器,局域网内部测试

线程池更好吗?原理应该是一样的吧

select?那样效率应该还不如完成端口的吧
JJONY 2003-04-25
  • 打赏
  • 举报
回复
一般而言, 要自己开发一套能同时上几万客户连接的系统是很少的。

如果真的有那么大的连接, 常规的做法是用线程池。池里的线程数量是可以增加的,线程在一定的时间内存在可以循环使用,如果超过时间线程都没有工作就自己自动关闭。
再说一个线程只服务于一个客户端那太浪费系统资源, 线程的能力还是不错的,服务十七八个客户端都没问题。

当然线程池这东西不太好实现。

18,356

社区成员

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

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