使用VB建立WebServer一例

2016-02-19 14:24 140 1 收藏

下面,图老师小编带您去了解一下使用VB建立WebServer一例,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

HTTP协议在浏览器中使用的原理:首先,Web浏览器与服务器建立连接,然后Web浏览器通过HTTP协议向服务器请求文档,最后,由服务器向Web浏览器应答,关闭连接。这就是HTTP协议的一般工作过程。下面,使用VisualBasic5.0中文版来实现一个简单的Web服务器,使用Tcp/IP协议的80端口,一般浏览器中的Http协议默认此端口,然后设置好超文本文件的发布路径,本程序默认为C:InetPubwwwroot,此WebServer程序比较简单,只适用于包含有文的超文本文件,如果超文本文件中含有图形,无法显示出来。

一、建立窗体

控件依次为label1,label2,label3,
  text1,text2,text3,command1,及Winsock1
  label1.caption=”VisualBasicWeb服务器1.0”
  label2.caption=”本机地址”
  label3.caption=”发布路径”
  text2.text=”c:Inetpubwwwroot”
  command1.caption=”启动”
  又击Command1加入代码
  PrivateSubCommand1_Click()
  '启动Winsock1,使用listen方法,听80端口
  DoEvents
  Winsock1.Close
  Winsock1.Protocol=sckTCPProtocol
  Winsock1.LocalPort=80
  
  Winsock1.Listen
  Text1.Text="WinSocket状态:
  "&CStr(Winsock1.State) " 
  本机IP地址:" CStr(Winsock1.LocalIP)
  EndSub
  然后在Winsock1的DataArrival事件中加入代码
  
  Winsock1.GetDataDataReceived,vbString
  Text3.Text=DataReceived
  pos1=0
  pos2=0
  Fori=1ToLen(DataReceived)
  IfMid(DataReceived,i,1)=""Then
    Ifpos1=0Then
    pos1=i 1
    Else
    pos2=i-1
    ExitFor
    EndIf
    
  EndIf
  Next
  
  OnErrorGoToExitThisSub
  Ifpos1<>0Andpos2<>0Then
  requestfilename=Mid(DataReceived,pos1 1,pos2-pos1)
  requestfilename=Trim(Text2.Text)&requestfilename
  IfDir(requestfilename)<>""Then
  Else
    GoToNoRequestFile
  EndIf
  EndIf
  OpenrequestfilenameForInputAs#1
  Winsock1.SendData"HTTP/1.0200OK" vbCrLf
  Winsock1.SendData"MIME_version:1.0" vbCrLf
  Winsock1.SendData"Content_Type:text/html" vbCrLf
  Winsock1.SendData
  "Content_Length:" CStr(LOF(1)) vbCrLf
  Winsock1.SendData"" vbCrLf
  Winsock1.SendData"" vbCrLf
  Winsock1.SendData"" vbCrLf
  DoWhileNotEOF(1)
  LineInput#1,TData
  Winsock1.SendDataTData
  Loop
  ExitThisSub:
  Close#1
  Command1_Click
  ExitSub
  
  NoRequestFile:
  Winsock1.SendData"HTTP/1.0200OK" vbCrLf
  Winsock1.SendData"MIME_version:1.0" vbCrLf
  Winsock1.SendData"Content_Type:text/html" vbCrLf
  Winsock1.SendData"Content_Length:" CStr(30) vbCrLf
  Winsock1.SendData"" vbCrLf
  Winsock1.SendData"" vbCrLf
  Winsock1.SendData"" vbCrLf
  Winsock1.SendData"< br ><br>
  <center><h2>欢迎您使用VBWebServer,
  刚才的地址没有找到!</h2><br>
  <br>1999年4月10日<br><br>
  <ahref=mailto:liyong@263.net>
  勇勇的信箱</a><br></center><br>"
  Command1_Click
  在Winsock1的ConnectRequest事件中加入代码
  Winsock1.Close
  Winsock1.AcceptrequestID

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

至此,大功告成,在c:inetpubwwwroot目录中,选一存在的超文本文件,如http://127.0.0.1/default.html即可。程序运行后,会显示出本机的IP地址,启动IE4.0,在地址栏中输入IP地址及文件名,如果出现上面的画面(略),那么说明服务器运行正常,且IP地址是对的,只是default.html文件不存在。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)->

来源:http://www.tulaoshi.com/n/20160219/1606897.html

延伸阅读
这是一个时钟程序,使我刚学完Turbo C作图后写的。程序原理我不再说明,在程序中有具体的注释。程序不足之处,请各位多多指点。/**********************************************               Clock.c          &nbs...
  通过代码优化,可以提高代码的执行效率,从而提升程序的品质。因而优化代码是程序员提高自身水平,提高技能的一个很重要途径。不同的代码有不同的分析方法,有不同的优化方法,而这全凭程序员的经验积累和自身水平。在公司里我既担任项目经理,也担任系统分析员,因而经常需要帮助程序员优化代码,因而在工作中积累了一些经验。为了将这...
标签: SQLServer
在Win2000 Server & Professional不能Attach DB File的原因和解决方法。     yy的SQL Server因为Master DB损坏,在没有Backup的情况下,无法修复和Restore,无奈只能Reinstall SQL Server,然后用Sp_attach_db来附加原来的应用DB File(xxx.mdf and xxx.ldf)。 为了保险起见,准备现在一台双平台的电脑上面试验。这台...
标签: PS PS教程
本教程为 www.jcwcn.com 中国 叶冷原创,如转载请保留这段话: 关于黑色背景抠发,感到困惑的人还是比较多,今天来发个有关这样的抠发帖子。 先贴原图 screen.width-500)this.style.width=screen.width-500;" border=0 pop="按此在新窗口浏览图片"> 下面的两个图,其中左图是原图,右图是用原图复制一个图层后将图层模式设定为“屏幕”后的...
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / title52css.com/title style type="text/css" label{ float: left; width: 80px; } form{margin:0px} i...

经验教程

83

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部