运行程序后在IE输入http://localhost/1.html就行了
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 = 80;
if(args.length == 1){
port = Integer.parseInt(args[0]);
}
//启动服务器
new WebServer().webStart(port);
}
}
public class Processor extends Thread {
private Socket sockets;
private InputStream in;
//为方便使用PrintStream
private PrintStream out;
//限定访问的文件地址
private final static String WEB_ROOT = "C:\\WebRoot\\";
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();
}
}
}
分享到:
相关推荐
//服务器端程序 import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; public class SocketServerExample extends Frame implements ActionListener { Label label=new Label("输入...
JAVA服务器端编程可用于毕业设计的外文翻译。有作者来源,中英版对照。
用于毕设设计的时候的翻译任务使用
Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器Java SE程序 客服端+服务器...
利用java的网络编程,以及流的处理,来实现客户端和服务器端得交互。
这是java做的服务器监控程序,支持多系统如window,Linux等主流系统,可监控物理内存,cpu,网络连接,服务等
一个比较完善的Java代理服务器程序,里面代码其全,结构清晰,值得研究。
编程实现:利用Java网络包中套接字类Socket和服务者套接字类SeverSocket实现如下功能:服务器端的程序等待客户端的输入,然后将客户端的输入回显给客户端,同时在服务器端的控制台输出。而客户端从控制台接收输入后...
基于案例学Java服务器端程序设计ZeroMQNetty视频教程-java-1-1课程介绍
NULL 博文链接:https://youngmaster.iteye.com/blog/429280
用java编写的聊天室程序带有服务器和客户端可同时多台聊天
网络聊天服务器程序Java服务器 网络聊天服务器程序Java
基于JAVA的客户/服务器程序源代码,java网络编程,使用Socket套接字编写网络通信程序。
简单的UDP客户端与服务器端JAVA程序。由客户端发送一条字符串,经由服务器处理返回全大写的相应字符串
Java程序读取服务器端数据文件的解决方法及比较,全面的论述
Java语言实现简单FTP软件,这个是对应的服务器端的程序
用java写的服务器客户端程序,是对socket的简单应用,可以进行通讯,简单易懂!
一个用Java写的FTP服务器程序。源码 !
Java网络编程之TCP协议下—上传文件到服务器程序,欢迎大家下载和知道