使用VB建立WebServer一例

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

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

【 tulaoshi.com - 编程语言 】

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

一、建立窗体

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

控件依次为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

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

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

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

延伸阅读
标签: autocad教程
本文由 wzm1234568 原创,转载请保留此信息! Tulaoshi.Com 昨天把平面图练习集(进阶型)140P做完了。在做的过程中,127题始终没有做出来。郁闷了好久。昨天终于找到答案了。我现在把做的过程贴出来。呵呵。(我可是初学者哟,高手看后要扔砖头的,捡小一点的啊,谢谢!!!) (另外,说一下,这个做法是我请教的高手教的,不...
这是一个时钟程序,使我刚学完Turbo C作图后写的。程序原理我不再说明,在程序中有具体的注释。程序不足之处,请各位多多指点。/**********************************************               Clock.c          &nbs...
  通过代码优化,可以提高代码的执行效率,从而提升程序的品质。因而优化代码是程序员提高自身水平,提高技能的一个很重要途径。不同的代码有不同的分析方法,有不同的优化方法,而这全凭程序员的经验积累和自身水平。在公司里我既担任项目经理,也担任系统分析员,因而经常需要帮助程序员优化代码,因而在工作中积累了一些经验。为了将这...
标签: PS PS教程
本教程为 www.jcwcn.com 中国 叶冷原创,如转载请保留这段话: 关于黑色背景抠发,感到困惑的人还是比较多,今天来发个有关这样的抠发帖子。 先贴原图 screen.width-500)this.style.width=screen.width-500;" border=0 pop="按此在新窗口浏览图片"> 下面的两个图,其中左图是原图,右图是用原图复制一个图层后将图层模式设定为“屏幕”后的...
标签: 电脑入门
前一段时间,有Windows 7用户给笔者发来邮件,内容有关Windows 7激活方面的问题。在和这位网友邮件沟通过程中,笔者了解到一个在Windows Vista系统就已经存在的问题。 在本文中,您将了解到如下内容: 问题正版Windows 7 序列号激活,系统提示slui.exe 0x2a 0x8007000D错误。 本文看点:Windows 7与某些软件兼容性问题,造成系统无法激活。 ...

经验教程

862

收藏

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