运用javaconcurrent.executorservice线程池实现sockettcp和udp连接.pdf

运用javaconcurrent.executorservice线程池实现sockettcp和udp连接.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运用 JAVA 的 concurrent.ExecutorService 线程池实现 socket 的 TCP 和 UDP 连接 最近在项目中可能要用到 socket 相关的东西来发送消息,所以初步研究了下 socket 的TCP 和 UDP 实现方式,并且结合java1.5 的 concurrent.ExecutorService 类来 实现多线程。 具体实现方式见代码: 一、TCP 方式: 1、服务端实现方式: TCP 的服务端实现方式主要用到 ServerSocket 类,接收等待客户端连接的方法是 accept(); 代码如下:类 SocketServerTCP 1 private int port = 8823; 2 private ServerSocket serverSocket; 3 private ExecutorService executorService;// 线程池 4 private final int POOL_SIZE = 100;// 单个 CPU 线程池大小 5 6 public SocketServerTCP() { 7 try { 8 serverSocket = new ServerSocket(port); 9 executorService = Executors.newFixedThreadPool(Runtime.getRuntime() 10 .availableProcessors() * POOL_SIZE); 11 logger.info(端口号为 + port + 的服务器启动); 12 } catch (IOException e) { 13 e.printStackTrace(); 14 } 15 } 16 17 public void service() { 18 System.out.println(socket 初始化成功!); 19 logger.info(socket 服务端初始化成功!); 20 while (true) { 21 Socket socket = null; 22 try { 23 // 接收客户连接,只要客户进行了连接,就会触发 accept();从而建立连接 24 socket = serverSocket.accept(); 25 executorService.execute(new CallService(socket)); 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 } 30 } CallService 类主要作用是接收到消息后,来实现具体业务。 代码如下: 1 /** 2 * 功能说明:执行具体业务的线程 3 */ 4 class CallService implements Runnable { 5 Logger logger = Logger.getLogger(CallService.class); 6 private Socket socket; 7 8 private BufferedReader is; 9 private PrintWriter os; 10 11 public CallService(Socket socket) { 12 this.socket = socket; 13 } 14 15 public void run() { 16 try { 17 is = new BufferedReader(new InputStreamReader(socket.getInputStream())); 18 os = new PrintWriter(socket.getOutputStream()); 19 20 String

文档评论(0)

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

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

1亿VIP精品文档

相关文档