今天早上 我写了一篇 用socket 做的 时间服务器,当时我说准备用一段时间作个不需要客户端接收数据
而是用 浏览器 接收数据的程序,很顺利,一天的时间 我就做好了:)
闲话不说,先看程序。。。 

using System;
 using System.Collections;
 using System.IO;
 using ;
 using .Sockets;
 using System.Threading;class HttpProcessor {
private Socket s;
 private BufferedStream bs;
 private StreamReader sr;
 private StreamWriter sw;
 private String method;
 private String url;
 private String protocol;
 private Hashtable hashTable;public HttpProcessor(Socket s) {
 this.s = s;
 hashTable = new Hashtable();
 }public void process() {
 NetworkStream ns = new NetworkStream(s, FileAccess.ReadWrite);
 bs = new BufferedStream(ns);
 sr = new StreamReader(bs);
 sw = new StreamWriter(bs);
 writeURL();
 s.Shutdown(SocketShutdown.SdBoth);
 ns.Close();
 }
 public void writeURL() {
 try {
 writeSuccess();
 } catch(FileNotFoundException) {
 writeFailure();
 sw.WriteLine("File not found: " + url);
 }
 sw.Flush();
 }public void writeSuccess() {
 sw.WriteLine("HTTP/1.1 200 OK");
 sw.WriteLine("Server: Microsoft-IIS/5.0");
 sw.WriteLine("Date: Mon, 27 Nov 2000 08:19:43 GMT");
 sw.WriteLine("Content-Length: 6");
 sw.WriteLine("Content-Type: text/html");
 sw.WriteLine("");String strDateLine;
 DateTime now;
 now = DateTime.Now;
 strDateLine = now.ToShortDateString() + " " + now.ToLongTimeString();
 sw.WriteLine(strDateLine);
 }public void writeFailure() {
 sw.WriteLine("HTTP/1.0 404 File not found");
 sw.WriteLine("Connection: close");
 sw.WriteLine();
 }
 }public class HttpServer {
 public HttpServer() : this(81) {
 }public HttpServer(int port) {
 this.port = port;
 }
 public void listen() {
 Socket listener = new Socket(0, SocketType.SockStream, ProtocolType.ProtTCP);
 IPAddress ipaddress = new IPAddress("169.254.0.244");
 IPEndPoint endpoint = new IPEndPoint(ipaddress, port);
 listener.Bind(endpoint);
 listener.Blocking = true;
 listener.Listen(-1);
 Console.WriteLine("Press Ctrl+c to Quit...");
 while(true) {
 Socket s = listener.Accept();
 HttpProcessor processor = new HttpProcessor(s);
 Thread thread = new Thread(new ThreadStart(processor.process));
 thread.Start();
 }
 }
 public static int Main(String[] args) {
 HttpServer httpServer;
 if(args.GetLength(0) > 0) {
 httpServer = new HttpServer(args[0].ToUInt16());
 } else {
 httpServer = new HttpServer();
 }
 Thread thread = new Thread(new ThreadStart(httpServer.listen));
 thread.Start();
 return 0;
 }
 }