用C# Builder实现Web服务器,用C#Build,C#Builde,#Builder,Builder实,uilder实现,ilder实现W,lder实现We,der实现Web,er实现Web服,r实现Web服务 用C# Builder实现Web服务器----编程资料集中营--八角123--bajiao123.com
编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
用C# Builder实现Web服务器,徐长友WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,HTTP协议的作用原理包括四个步骤:连接,请求,应答。根据上述HTTP协议的作用原理,本文实现了GET请求的Web服务器程序的方法,通过创建TcpListener类对象,监听端口808;等待、接受客户机连接到端口,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> .NET 专区 >> NET 技术 >> 文章正文
【字体:
用C# Builder实现Web服务器   进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:本站    点击数:    更新时间:2007-6-7    

用C# Builder实现Web服务器

Type );
if(mySocket.Connected)
{
Console.WriteLine("\n客户端连接!!\n==================\nCLient IP {0}\n",mySocket.RemoteEndPoint) 

Byte[] bReceive = new Byte[1024] 
int i = mySocket.Receive(bReceive,bReceive.Length,0) 

//转换成字符串类型
string sBuffer = Encoding.ASCII.GetString(bReceive);

//处理"get"请求类型
if (sBuffer.Substring(0,3) != "GET" )
{
Console.WriteLine("处理get请求类型..");
mySocket.Close();
return;
}

// 查找 "HTTP" 的位置
iStartPos = sBuffer.IndexOf("HTTP",1);

string sHttpVersion = sBuffer.Substring(iStartPos,8);

// 得到请求类型和文件目录文件名
sRequest = sBuffer.Substring(0,iStartPos - 1);

sRequest.Replace("\\","/");

//如果结尾不是文件名也不是以"/"结尾则加"/"
if ((sRequest.IndexOf(".") <1) && (!sRequest.EndsWith("/")))
{
   sRequest = sRequest + "/";
}


//得带请求文件名
iStartPos = sRequest.LastIndexOf("/") + 1;
sRequestedFile = sRequest.Substring(iStartPos);

//得到请求文件目录
sDirName = sRequest.Substring(sRequest.IndexOf("/"), sRequest.LastIndexOf("/")-3);

//获取虚拟目录物理路径
sLocalDir = sMyWebServerRoot;

Console.WriteLine("请求文件目录 : " + sLocalDir);

if (sLocalDir.Length == 0 )
{
  sErrorMessage = "<H2>Error!! Requested Directory does not exists</H2><Br>";
  SendHeader(sHttpVersion, "", sErrorMessage.Length, " 404 Not Found", ref mySocket);
  SendToBrowser(sErrorMessage, ref mySocket);
  mySocket.Close();
  continue;
}


if (sRequestedFile.Length == 0 )
{
   // 取得请求文件名
   sRequestedFile = "index.html";
}


// 取得请求文件类型(设定为text/html)
String sMimeType = "text/html";

sPhysicalFilePath = sLocalDir + sRequestedFile;
Console.WriteLine("请求文件: " + sPhysicalFilePath);


if (File.Exists(sPhysicalFilePath) == false)
{

   sErrorMessage = "<H2>404 Error! File Does Not Exists...</H2>";
   SendHeader(sHttpVersion, "", sErrorMessage.Length, " 404 Not Found", ref mySocket);
   SendToBrowser( sErrorMessage, ref mySocket);
   Console.WriteLine(sFormattedMessage);
}

else
{
   int iTotBytes=0;
   sResponse ="";
   FileStream fs = new&nbs

上一页  [1] [2] [3] [4] 下一页

   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 高级搜索
    编程资料集中营