日期:2014-05-17 浏览次数:20950 次
import java.net.Socket; import java.net.ServerSocket; import java.net.InetAddress; import java.io.InputStream; import java.io.OutputStream; import java.io.IOException; import java.io.File; public class HttpServer { /** * WEB_ROOT is the directory where our HTML and other files reside. For * this package, WEB_ROOT is the "webroot" directory under the working * directory. The working directory is the location in the file system * from where the java command was invoked. */ public static final String WEB_ROOT = System.getProperty("user.dir")+File.separator+"webroot"; // shutdown command private static final String SHUTDOWN_COMMAND = "/SHUTDOWN"; // the shutdown command received private boolean shutdown = false; public static void main(String[] args) { HttpServer server = new HttpServer(); server.await(); } public void await() { ServerSocket serverSocket = null; int port = 8080; try { serverSocket = new ServerSocket(port, 1, InetAddress.getByName("127.0.0.1")); } catch (IOException e) { e.printStackTrace(); System.exit(1); } // Loop waiting for a request while (!shutdown) { Socket socket = null; InputStream input = null; OutputStream output = null; try { socket = serverSocket.accept(); input = socket.getInputStream(); output = socket.getOutputStream(); // create Request object and parse Request request = new Request(input); request.parse(); // create Response object Response response = new Response(output); response.setRequest(request); response.sendStaticResource(); // Close the socket socket.close(); // check if the previous URI is a shutdown // command shutdown = request.getUri().equals(SHUTDOWN_COMMAND); } catch (Exception e) { e.printStackTrace(); continue; } } } }
------解决方案--------------------
忽悠人用的。
package org.sl.test;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
/**
* 忽悠人的http 服务器
* @author shanl
*
*/
public class HttpServer {
static public void start(){
StringBuilder echo = new StringBuilder();
echo.append("<html>");
echo.append("<head>");
echo.append("<title>hello</title>");
echo.append("</head>");
echo.append("<body>");
echo.append("<center>");
echo.append("<b1>Welcome to my home page.</b1>");
echo.append("</center>");
echo.append("</body>");
echo.append("</html>");
ServerSocket ss = null;
int port = 8010;
SocketAddress address = null;
Socket connect = null;
byte[] buffer = new byte[512];
int readLen = 0;
try{
System.out.println("开始监听:" + port);
address = new InetSocketAddres