免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2499 | 回复: 6
打印 上一主题 下一主题

java socket server 请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-22 15:20 |只看该作者 |倒序浏览
两种实现手段:
1、初时化serversocket,在每次accept一个client请求后启动一个线程(用threadpool)服务。
2、先初时化serversocket,然后启动指定数量的线程,每个线程里面accept,accept后不启动新线程,而是服务完后在本线程里继续accept。

如果是希望获取更好的并发性能,这两种方式那种好些?

恳请指点。

[ 本帖最后由 yuanyawei 于 2008-5-22 17:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-05-22 15:28 |只看该作者
补充下,我讲的liten就是java.net.ServerSocket.accept()的意思。

论坛徽章:
0
3 [报告]
发表于 2008-05-22 16:03 |只看该作者
建议你使用第一种方式,对于每个客户端,都开启一个线程来处理

第二种需要开多个端口,不适合做服务器

论坛徽章:
0
4 [报告]
发表于 2008-05-22 16:13 |只看该作者
2是错的。

可以这样:
在启动线程之前就listen,在线程里面从accept开始。

论坛徽章:
0
5 [报告]
发表于 2008-05-22 16:36 |只看该作者

回复 #4 yuanchengjun 的帖子

不好意思,我先头没讲清楚,
2的确切意思是:
先建serversocket
再起来N个线程
然后在每个线程里accept

就是你讲的意思。呵呵

论坛徽章:
0
6 [报告]
发表于 2008-05-22 17:13 |只看该作者
希望大家多多赐教

论坛徽章:
0
7 [报告]
发表于 2008-05-22 18:42 |只看该作者

java 程序员必备电子书

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP