`
hnjzsyjyj
  • 浏览: 28846 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java服务器程序

阅读更多
转载自:http://langhua9527.iteye.com/blog/328174

运行此服务器程序的前提是首先在XP上安装IIS,然后在默认的服务器目录C:\Inetpub\wwwroot
下新建一个dog.html文件。之后,运行下文的程序WebServer.java,后在IE输入http://localhost/dog.html就行了。


WebServer.java
import java.io.*;
import java.net.*;

public class WebServer {   
    private void webStart(int port){   
        try {   
            //新建一个服务器ServerSocket   
            ServerSocket socketServer = new ServerSocket(port);   
            while(true){   
                //等待客户端的请求   
                Socket socket = socketServer.accept();   
                new Processor(socket).start();   
            }   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
    public static void main(String[] args) {   
        int port = 2011;   
        if(args.length == 1){   
            port = Integer.parseInt(args[0]);   
        }   
        //启动服务器   
        new WebServer().webStart(port);   
    }   
} 


Processor.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

public class Processor extends Thread {   
    private Socket sockets;   
    private InputStream in;   
    //为方便使用PrintStream   
    private PrintStream out;       
    //限定访问的文件地址   
    private final static String WEB_ROOT = "C:\\Inetpub\\wwwroot
";   
  
    public Processor(Socket socket) {   
        this.sockets = socket;   
        try {   
            //初始化in,out   
            in = sockets.getInputStream();   
            out = new PrintStream(sockets.getOutputStream());   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
  
    public void run() {   
        String filename = parse(in);   
        sendFile(filename);   
    }   
    //读客户端传过来的信息,返回需要请求的文件名   
    public String parse(InputStream in) {   
        //建立一个BufferedReader读客户端传过来的信息   
        BufferedReader br = new BufferedReader(new InputStreamReader(in));   
        String filename = null;   
        try {   
            String httpMessage = br.readLine();   
            String[] content = httpMessage.split(" ");   
            if (content.length != 3) {   
                sendErrorMessage(400, "客户端请求错误");   
            }   
            System.out.println("code:" + content[0] + ",name:" + content[1]   
                    + ",http version" + content[2]);   
            filename = content[1];   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        return filename;   
    }   
    //错误处理   
    public void sendErrorMessage(int errorCoder, String errorMessage) {   
  
    }   
    //读取本地文件   
    public void sendFile(String filename) {   
        File file = new File(Processor.WEB_ROOT + filename);   
        if (!file.exists()) {   
            this.sendErrorMessage(404, "文件名不存在错误");   
        }   
        try {   
            //读取本地文件,并放到content里面,再用out写到客户端那边   
            InputStream in = new FileInputStream(file);   
            byte[] content = new byte[(int) file.length()];   
            in.read(content);   
            out.write(content);   
            out.close();   
            in.close();   
  
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
} 
分享到:
评论

相关推荐

    Java服务器程序设计:原理和技术

    Java服务器程序设计:原理和技术 在当今的信息化时代,服务器端程序设计扮演着至关重要的角色。随着电子商务和其他企业应用的普及,透明化、网络化、适应性和服务导向成为21世纪经济的核心要求。Subrahmanyam ...

    Java服务器程序外文翻译

    Servlets是Java服务器端编程的基础,它们是运行在服务器上的Java小程序,用于处理HTTP请求并生成响应。Servlets可以与JSP结合使用,JSP主要负责视图层的呈现,而Servlets则处理控制逻辑和业务逻辑。 JPA是Java平台...

    基于java编程的服务器程序

    Java服务器程序,通常是指运行在服务器端,用于处理客户端请求并返回响应的程序。它们是互联网服务的核心部分,能够处理HTTP、FTP等网络协议,提供动态网页、数据库交互、文件传输等多种服务。Java平台提供的Java...

    浅谈Java小程序数据库的访问方法.pdf

    第二种方法则是通过三个结构进行,使用标准协议纯Java驱动器,这时需要一个独立的Java服务器程序作为网关。这种方案通过Java小程序发送请求给Java服务器,服务器程序再通过本机的客户-服务器协议访问数据库,并将...

    Java服务器端处理程序

    在给定的标签"java server wenjianchuan"中,"wenjianchuan"可能指的是文件传输,这表明Java服务器程序可能涉及到文件的上传或下载。为了实现这一功能,服务器端通常需要接收客户端发送的文件数据流,将其保存到本地...

    Java 客户端服务器程序 学习笔记

    在这个“Java客户端服务器程序学习笔记”中,我们将深入探讨这一主题,包括如何设计、实现和交互这两个关键组件。 首先,客户端是用户与系统进行交互的部分,它发送请求到服务器并接收响应。服务器端则处理这些请求...

    通过java编写客户端,服务器程序,实现聊天功能

    本教程将详细阐述如何通过Java编写客户端和服务器程序来实现这一功能。 首先,我们要理解客户端与服务器端的基本概念。客户端是发起请求的一方,而服务器端则是响应请求并提供服务的一方。在网络通信中,通常使用...

    Java代理服务器程序

    Java代理服务器程序是一种用于转发网络请求的应用,它在客户端与目标服务器之间起到中介的作用。这样的设计使得用户可以通过代理服务器访问互联网,从而实现多种功能,如匿名浏览、负载均衡、缓存优化、网络监控等。...

    Java SE程序 客服端+服务器

    Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器...

    Java 服务器信息监控

    本文将详细探讨使用Java实现的服务器监控程序,以及如何利用它来监控CPU、内存、网络连接和服务状态。 Java作为一种跨平台的语言,为开发服务器监控工具提供了便利。在"Java 服务器信息监控"项目中,开发者可以编写...

    java服务器端和客户端程序

    编程实现:利用Java网络包中套接字类Socket和服务者套接字类SeverSocket实现如下功能:服务器端的程序等待客户端的输入,然后将客户端的输入回显给客户端,同时在服务器端的控制台输出。而客户端从控制台接收输入后...

    基于案例学Java服务器端程序设计ZeroMQNetty视频教程-1

    基于案例学Java服务器端程序设计ZeroMQNetty视频教程-java-1-1课程介绍

    Java服务器编程(外文文献)(中英文)

    Java服务器编程是指使用Java语言开发服务器端应用程序的技术。服务器端应用程序是指运行在服务器端的应用程序,负责处理客户端的请求、提供数据存储和检索、实现业务逻辑等功能。随着二十一世纪经济的发展,服务器端...

    java socket服务器客户端程序

    Java Socket服务器客户端程序是网络编程中的基础组件,用于实现两台计算机之间的通信。Socket编程是Java提供的一个标准接口,它允许应用程序通过网络发送和接收数据。在这个程序中,我们将探讨以下几个核心知识点: ...

    java实现ftp服务器端配套程序

    Java实现FTP服务器端配套程序是一种将Java编程语言用于构建文件传输协议(FTP)服务端的应用。FTP是一种在互联网上广泛使用的标准协议,用于在客户端和服务器之间上传、下载文件。在Java中,我们可以利用标准库中的`...

    Java程序读取服务器端数据文件的解决方法及比较

    ### Java程序读取服务器端数据文件的解决方法及比较 #### 概述 在现代软件开发过程中,尤其是在网络编程领域,Java作为一种强大的编程语言被广泛应用。然而,在开发客户端程序时,经常会遇到Java程序所定义与使用...

    UDP简易客户端与服务器端程序(Java)

    在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...

    Java 聊天室程序有服务器和客户端

    用java编写的聊天室程序带有服务器和客户端可同时多台聊天

    让WEB服务器从视频服务器获取数据流的JAVA源程序

    标题中的“让WEB服务器从视频服务器获取数据流的JAVA源程序”揭示了这是一个关于使用Java编程语言实现的程序,该程序允许Web服务器从专门的视频服务器检索并处理视频数据流。这种技术通常用于构建分布式多媒体系统,...

Global site tag (gtag.js) - Google Analytics