使用Java多线程优化基于TCP协议的Server

来源:互联网 发布:linux 复制文件 编辑:程序博客网 时间:2024/05/16 08:30
package com.ch10_network;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Date;/** * 给服务器加上多线程 * 提升服务器端程序处理并发的能力 * 主线程只负责监听和接受请求 * 业务代码则放在线程的run()方法中 */public class TCPServerB {public static void main(String[] args) throws Exception {ServerSocket serverSocket = new ServerSocket(8888);Socket socket = null;while((socket=serverSocket.accept())!=null) {new MyThread(socket).start();}serverSocket.close();}}class MyThread extends Thread{private Socket socket;public MyThread(Socket socket) {super();this.socket = socket;}public void run() {try {OutputStream os = socket.getOutputStream();//获得输出流PrintWriter pw = new PrintWriter(os);//创建PrintWriter对象pw.printf("now time = "+new Date());//往输出流写当前时间pw.flush();//清空缓存pw.close();//关闭输出流socket.close();//关闭socket} catch (IOException e) {e.printStackTrace();}}}