首页 | 联系我们 | 叶凡网络官方QQ群:323842844
游客,欢迎您! 请登录 免费注册 忘记密码
您所在的位置:首页 > 开发语言 > Java开发 > 正文

sockect简易http服务器

作者:cocomyyz 来源: 日期:2013-9-11 23:25:10 人气:3 加入收藏 评论:0 标签:java

先写一个Java类:

========================================

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class CustomServer {

private ServerSocket server;

// Constructor to initialize the server
public CustomServer() {
  try {
   // port setting
   server = new ServerSocket(1014);
  } catch (IOException e) {
   e.printStackTrace();
  }
  // open Listener
  new Litener().start();
}

// write a inner class to listen the request
private class Litener extends Thread {
  Socket client = null;

  public void run() {
   while (true) {
    try {
     System.out.println("The Custom Server is listening...");
     client = server.accept();
     System.out.println("A Client had requested.");
     System.out.println("");
     new LitenerHandler(client).start();
     try {
      Thread.sleep(1000);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
}

// Handle the client designed
private class LitenerHandler extends Thread {
  private Socket client;

  public LitenerHandler(Socket client) {
   this.client = client;
  }

  // run thread
  public void run() {
   // get and print message
   String message = this.getMessage();
   System.out.println("data had got: ==================== " + message);
   // send data to client
   String hello = "Hello, Welcome <font color='red'>李明</font>";
   this.sendMessage(hello);
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  }

  // send message to client
  private void sendMessage(String message) {
   try {
    OutputStream os = client.getOutputStream();
    os.write(message.getBytes());
    os.flush();
    os.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }

  // get message from client
  private String getMessage() {
   try {
    InputStream is = client.getInputStream();
    byte[] b = new byte[1024];
    int len = is.read(b);
    return new String(b, 0, len);
   } catch (IOException e) {
    e.printStackTrace();
   }
   return "";
  }

}

/**
* start the custom server
*
* @param args
*/
public static void main(String[] args) {
  new CustomServer();
}

}

===============================================

运行此类,打开浏览器在地址栏中输入:

http://localhost:1014/?name=李明

在控制台就能看到你请求的name,在浏览器同样可以看到有此服务器传回来的值


本文网址:http://www.mingyangnet.com/html/java/214.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
上一篇: 线程同步
更多>>网友评论
发表评论
编辑推荐
  • 没有资料