运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接.pdfVIP

  • 2
  • 0
  • 约1.05万字
  • 约 8页
  • 2019-11-11 发布于四川
  • 举报

运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接.pdf

运用 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 Log

文档评论(0)

1亿VIP精品文档

相关文档