网站大量收购独家精品文档,联系QQ:2885784924

《多线程Java_Socket编程示例》.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《多线程Java_Socket编程示例》.doc

多线程Java Socket编程示例 这篇做为学习孙卫琴Java网络编程精解的学习笔记吧.其中采用Java 5的ExecutorService来进行线程池的方式实现多线程,模拟客户端多用户向同一服务器端发送请求. 1.服务端 package?sterning; import?java.io.BufferedReader; import?java.io.IOException; import?java.io.InputStream; import?java.io.InputStreamReader; import?java.io.OutputStream; import?java.io.PrintWriter; import?java.net.*; import?java.util.concurrent.*; public?class?MultiThreadServer?{ ????private?int?port=8821; ????private?ServerSocket?serverSocket; ????private?ExecutorService?executorService;//线程池 ????private?final?int?POOL_SIZE=10;//单个CPU线程池大小 ???? ????public?MultiThreadServer()?throws?IOException{ ????????serverSocket=new?ServerSocket(port); ????????//Runtime的availableProcessor()方法返回当前系统的CPU数目. ????????executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE); ????????System.out.println(服务器启动); ????} ???? ????public?void?service(){ ????????while(true){ ????????????Socket?socket=null; ????????????try?{ ????????????????//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接 ????????????????socket=serverSocket.accept(); ????????????????executorService.execute(new?Handler(socket)); ???????????????? ????????????}?catch?(Exception?e)?{ ????????????????e.printStackTrace(); ????????????} ????????} ????} ???? ????public?static?void?main(String[]?args)?throws?IOException?{ ????????new?MultiThreadServer().service(); ????} } class?Handler?implements?Runnable{ ????private?Socket?socket; ????public?Handler(Socket?socket){ ????????this.socket=socket; ????} ????private?PrintWriter?getWriter(Socket?socket)?throws?IOException{ ????????OutputStream?socketOut=socket.getOutputStream(); ????????return?new?PrintWriter(socketOut,true); ????} ????private?BufferedReader?getReader(Socket?socket)?throws?IOException{ ????????InputStream?socketIn=socket.getInputStream(); ????????return?new?BufferedReader(new?InputStreamReader(socketIn)); ????} ????public?String?echo(String?msg){ ????????return?echo:+msg; ????} ????public?void?run(){ ????????try?{ ????????????

您可能关注的文档

文档评论(0)

mwap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档