- 2
- 0
- 约1.05万字
- 约 8页
- 2019-11-11 发布于四川
- 举报
运用 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
您可能关注的文档
最近下载
- 给水排水1 (2017)_17ZS01_卫生工程.docx VIP
- 《GB/T 46748-2025宇航用元器件应用验证综合评价方法》.pdf
- 《船舶轴带发电机原理与维护》课件.ppt VIP
- 人教版高一上学期数学(必修一)期末考试卷(附答案).pdf VIP
- 部编版《道德与法治》 四年级下册教案教学设计、教学计划、教学进度安排、教学反思 检测试卷(含答案).doc VIP
- 离婚协议书范本(标准版).docx VIP
- 年产10000吨味精项目工厂设计要点.pdf VIP
- 锂离子电池隔膜培训.pptx VIP
- 大学物理光学复习试卷及答案.docx VIP
- 湖北省武汉市江岸区三年级(上)期末语文试卷.doc VIP
原创力文档

文档评论(0)