就是编写一个html的服务器
或介绍一下原理也可以,只需要是静态页面的就可以了
谁看到过有关资料的也请提示一下。
或介绍一下原理也可以,只需要是静态页面的就可以了
谁看到过有关资料的也请提示一下。
解决方案 »
- 写的一个小软件,还原星空极速的账号密码。
- 求助 C#编辑记事本的新建功能
- listview添加contextMenu以后无法触发ColumnClick事件
- 最后分请教一个比较难的选择问题
- 请求帮助
- **************大量精品代码整理发布。。。。。。(不断收集中,顶着有分)*******************
- C#中在方括号内写的那种是什么?
- 类型或命名空间名称“Padding”在类或命名空间“Infragistics.WebUI.Shared”中不存在
- 在.Net中怎样实现将文件拷贝到指定的网络共享文件夹中(主要是解决权限问题)-苦等~
- 怎样用timer空间显示在线时间
- 帮忙:把以下javascript代码用c#实现
- 请问一下C#程序里面怎么执行命令行程序,并且获得返回信息???
如果从socket层写起
比如你的服务器绑定80端口
那么你会时不时的从80端口监听到一串字节流
你要判断哪些请求代表什么动作传入什么参数
post get之类的然后服务器做出处理形成html页面传送到客户端
剩下是浏览器的工作了
卡西欧还支持.net
Create your own Web Server using C#
http://www.developerfusion.co.uk/show/1775/
搜了半天才明白过来,可以在这里下载。
http://www.asp.net/Projects/Cassini/Download/刚才那篇文章也可以在这里看到,免得翻页了。
http://www.codeproject.com/csharp/mywebserver.asp
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));
}
}
}
}