就是编写一个html的服务器
或介绍一下原理也可以,只需要是静态页面的就可以了
谁看到过有关资料的也请提示一下。

解决方案 »

  1.   

    没明白你的意思,如果你要的只是静态的html在服务器端配置IIS就可以了,不需要用C#。如果你指的是。net下面的web server那跟静态的html也没有太大的联系~~
      

  2.   

    这是个浩大的工程
    如果从socket层写起
    比如你的服务器绑定80端口
    那么你会时不时的从80端口监听到一串字节流
    你要判断哪些请求代表什么动作传入什么参数
    post get之类的然后服务器做出处理形成html页面传送到客户端
    剩下是浏览器的工作了
      

  3.   

    的确是写个小型的IIS,但关键是我用别人不占用的端口,可以接受数据,也能判断是什么类别的数据,但如何返回数据给IE浏览器?
      

  4.   

    看看卡西欧的源码不就行了 
    卡西欧还支持.net
      

  5.   

    看看这里:
    Create your own Web Server using C#
    http://www.developerfusion.co.uk/show/1775/
      

  6.   

    楼上应该说的是Cassini吧。
    搜了半天才明白过来,可以在这里下载。
    http://www.asp.net/Projects/Cassini/Download/刚才那篇文章也可以在这里看到,免得翻页了。
    http://www.codeproject.com/csharp/mywebserver.asp
      

  7.   

    建立一个socket在制定port进行侦听,当浏览器建立连接后分析浏览器输入的HTTP头,一般简单的话就分析第一句,看是GET还是POST或者是其他的,然后分析用户请求的文件,如果文件存在相应200 同时把文件发过去,如果文件不存在响应403错误,基本上就OK了,代码不会很多的
      

  8.   

    using System;
    using System.Net;
    using System.IO;namespace SimpleHttpServer
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: Add code to start application here
    //
    try
    {
    Server s= new Server(1234);
    s.startServer();
    }
    catch(Exception e)
    {
    Console.WriteLine(e.Message);
    Console.ReadLine();
    }
    }
    } class Server
    {
    private System.Net.Sockets.TcpListener sServer; public Server(int port)
    {
    sServer = new System.Net.Sockets.TcpListener(port);
    sServer.Start();
    } public void startServer()
    {
    while(true)
    {
    System.Net.Sockets.Socket s = sServer.AcceptSocket();
    this.HandleClient(s);
    }
    } private void HandleClient(System.Net.Sockets.Socket s)
    {
    byte[] buffer = new byte[1024];
    int iNum = s.Receive(buffer);
    int startPos,endPos;
    for(startPos=0; startPos<iNum ; startPos++)
    {
    if(buffer[startPos] == ' ')
    break;
    }
    for(endPos = ++startPos;endPos<iNum;endPos++)
    {
    if(buffer[endPos] == ' ')
    break;
    }
    if(endPos > startPos)
    {
    this.ResponseClient(s,System.Text.ASCIIEncoding.ASCII.GetString(buffer,startPos,endPos-startPos));
    }
    s.Close();
    } static string root = "C:/Inetpub/wwwroot"; private void ResponseClient(System.Net.Sockets.Socket s,string file)
    {
    file = root + file;
    if(System.IO.File.Exists(file))
    {
    /*
    string head = "200 HTTP1.1 \r\n\r\n";
    s.Send(System.Text.ASCIIEncoding.ASCII.GetBytes(head));
    */
    System.IO.FileStream f= System.IO.File.OpenRead(file);
    byte[] buffer = new byte[f.Length];
    f.Read(buffer,0,(int)f.Length);
    s.Send(buffer);
    }
    else
    {
    string head = "403 HTTP1.1\r\n\r\n";
    s.Send(System.Text.ASCIIEncoding.ASCII.GetBytes(head));
    }
    }
    }
    }
      

  9.   

    上边的例子将就看一下吧,不是很烦,但是很多HTTP的响应头和请求头都没处理,不过现在的IE浏览器比较优秀,可以识别的