Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
最简单的Http服务器之java版

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

只支持单线程,只能接收一个请求

我想加以改进,让它可以接收多个请求

注释我就不加了

可以参考用winsock版,好像java的更简单

?

import java.io.*;
import java.net.*;
import java.util.*;

public class WebServer{
? public static void main(String []args)throws Exception{
??? String requestMessageLine;
??? String fileName;
??? ServerSocket listenSocket=new ServerSocket(80);
??? Socket connectSocket=listenSocket.accept();
??? BufferedReader inFormClient=new BufferedReader(new
??????? InputStreamReader(connectSocket.getInputStream()));
??? DataOutputStream outToClient=new
??????? DataOutputStream(connectSocket.getOutputStream());
??? requestMessageLine=inFormClient.readLine();
??? StringTokenizer tokenizedLine=new StringTokenizer(requestMessageLine);
??? if(tokenizedLine.nextToken().equals("GET")){
????? fileName=tokenizedLine.nextToken();
????? if(fileName.startsWith("/")==true){
??????? fileName=fileName.substring(1);
????? }
????? String filePath=new String("D:\\Java\\httpserver\\classes\\");
????? File file=new File(filePath+ fileName);
????? int numOfBytes=(int)file.length();
????? FileInputStream inFile=new FileInputStream(filePath+fileName);
????? byte []fileInBytes=new byte[numOfBytes];
????? inFile.read(fileInBytes);
????? outToClient.writeBytes("HTTP/1.0 200 Document Follows\r\n");
????? if(fileName.endsWith(".jpg")){
???????? outToClient.writeBytes("Conten-Type: image/jpeg\r\n");
????? }
????? else if(fileName.endsWith(".gif")){
???????? outToClient.writeBytes("Conten-Type: image/gif\r\n");
????? }
????? outToClient.writeBytes("Content-Length: " + numOfBytes + "\r\n");
????? outToClient.writeBytes("\r\n");
????? outToClient.write(fileInBytes,0,numOfBytes);
????? connectSocket.close();


??? }
??? else{
????? System.out.println("No support for other request except GET!");
??? }


? }
}




相关文章

相关软件