zoukankan      html  css  js  c++  java
  • 用Java socket (TCP通信模型)实现一个简单的web 服务器

    package cn.magicdu.think.socket;
    
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.Socket;
    
    /**
     * Http 处理线程
     * @author xiaoduc
     *
     */
    public class HttpThread extends Thread {
        
        private Socket socket;//连接点
        
        public HttpThread(Socket socket) {
            super();
            this.socket=socket;
        }
        
        @Override
        public void run() {
            try {
                OutputStream os=socket.getOutputStream();//获得输出流
                PrintWriter pw=new PrintWriter(os);//创建PrintWriter 对象
                //往输出流写入内容
                pw.println("<html>");
                pw.println("<body>");
                pw.println("hello it's me!!");
                pw.println("</body>");
                pw.println("</html>");
                pw.flush();//清空缓存
                pw.close();//关闭输出流
                socket.close();//关闭socket
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    package cn.magicdu.think.socket;
    
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /**
     * web 服务端
     * @author xiaoduc
     *
     */
    public class WebServer {
        
        public static void main(String[] args) throws Exception{
            //用端口号创建一个ServerSocket对象,监听8081端口
            ServerSocket ss=new ServerSocket(8081);
            //开始循环监听来自客户端的请求
            Socket s=null;
            while((s=ss.accept())!=null){
                new HttpThread(s).start(); //开始一个新的线程
            }
            ss.close();
        }
    }

    运行结果: 在浏览器输入 http:// localhost:8081

  • 相关阅读:
    sudo详解
    Linux按照CPU、内存、磁盘IO、网络性能监测
    基于kickstart定制自动化安装的linux镜像系统
    基于busybox和LFS的linux系统定制
    syslog及syslog-ng详解 日志服务器
    yum报错
    二进制程序及其依赖库的移植脚本
    Linux 系统裁剪
    linux 内核手动编译
    linux rc.sysinit文件详解
  • 原文地址:https://www.cnblogs.com/xiaoduc-org/p/5968688.html
Copyright © 2011-2022 走看看