前言:
学习java 网络编程预备知识
socket、数据流、
线程。
前两个都很容易解决,线程这块要下点功夫,还好java对这块有天生的优势。
学socket 之前要看一下tcp/udp 传输层
协议,
理解起来会有帮助,学数据流之前看一下
装饰模式 会对你成长大有裨益,学习线程之前还是先买本书吧。呵呵。
废话不说了,简单的
例子,以激发自己学习兴趣:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 运行方法: 运行些类后,打开浏览器,地址栏中输入“http://127.0.0.1:8888”就可以看到效果!
*
* @author Administrator
*/
public class WebServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8888);
while (true) {
Socket s = ss.accept();
Service sc = new Service(s);
Thread th = new Thread(sc);
th.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*
*
* @author Administrator
*
*/
class Service implements Runnable {
private Socket socket = null;
public Service(Socket s) {
this.socket = s;//new 对象时传递 Socket 对象
}
@Override
public void run() {
try {
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.println("HTTP/1.0 200 OK");
pw.println("Content-Type:text/html;charset=utf-8");
pw.println();
pw.println("<h1>Test Web Server Success!</h1>");
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
怎么样?
是不是感觉咱们一直用的tomcat 你也会写了?呵呵,继续努力吧,说不定下一代高性能服务器软件由你开发!