计算机世界日报
返回首页 产品报价 实用技巧 国产软件 技术天地 站点精选

计算机世界展览会日报

  综合要闻
  企业&人.com
  产品与技术
  网络与通信
  市场与渠道
  99全文检索

CCW网站

  网络世界
  微电脑世界
  IT经理世界
  CCW展览
  信息服务中心   家用电脑世界

兄弟刊物

  电子与信息化
  今日电子
  中国新闻科技
  电子知识产权
  电子产品世界

网上专递

  Linux园地
  友情链接
  冬涛谈法
Dongtao on Law

98内容总汇



实用技巧

使用VB建立Web Server

山东济南智星软件
李勇

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

一、建立窗体

----
控件依次为label1,label2,label3,
text1,text2,text3,command1,及Winsock1
label1.caption=”Visual Basic Web 服务器 1.0”
label2.caption=”本机地址”
label3.caption=”发布路径”
text2.text=”c:\Inetpub\wwwroot\”
command1.caption=”启动”

又击Command1加入代码
Private Sub Command1_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)

End Sub



然后在Winsock1 的DataArrival事件中加入代码
    
    Winsock1.GetData DataReceived, vbString
    Text3.Text = DataReceived
    pos1 = 0
    pos2 = 0
    For i = 1 To Len(DataReceived)
        If Mid(DataReceived, i, 1) = " " Then
            If pos1 = 0 Then
                pos1 = i + 1
            Else
                pos2 = i - 1
                Exit For
            End If
            
        End If
    Next
    
    On Error GoTo ExitThisSub
    If pos1 < > 0 And pos2 < > 0 Then
    requestfilename = Mid(DataReceived, pos1 + 1, pos2 - pos1)
    requestfilename = Trim(Text2.Text) & requestfilename
        If Dir(requestfilename) < > "" Then
        Else
            GoTo NoRequestFile
        End If
    End If

    Open requestfilename For Input As #1
    Winsock1.SendData "HTTP/1.0 200 OK" + 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

    Do While Not EOF(1)
        Line Input #1, TData
        Winsock1.SendData TData
    Loop

ExitThisSub:
    Close #1
    Command1_Click
    Exit Sub
    
NoRequestFile:
    Winsock1.SendData "HTTP/1.0 200 OK" + 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 >欢迎您使用VB WebServer,
刚才的地址没有找到!< /h2 >< br >
< br >1999年4月10日< br >< br >
< a href=mailto:liyong@263.net >
勇勇的信箱< /a >< br >< /center >< br >"
Command1_Click
在Winsock1的ConnectRequest事件中加入代码
    Winsock1.Close
    Winsock1.Accept requestID
---- 至此,大功告成,在c:\inetpub\wwwroot目录中,选一存在的超文本文件,如http://127.0.0.1/default.html即可。程序运行后,会显示出本机的IP地址,启动IE 4.0,在地址栏中输入IP地址及文件名,如果出现上面的画面(略),那么说明服务器运行正常,且IP地址是对的,只是default.html文件不存在。
 
免 费 订 阅

实用技巧分类

Office应用
CAD
C、C++
数据库应用
Delphi
Internet应用
Java
Notes应用
操作系统应用
PowerBuilder
VB
Visual Foxpro
其他类
上周 排行榜
如 何 投 稿 ?

编者的话

在日常的工作生活中, 我们对计算机软硬件技术的应用开发肯定有许多的心得体会, 拿来和众人分享:让别人得到他们想要的,使自己找到苦苦寻觅的; 小的点点滴滴,大的工程系统,这里都需要。投稿 的关键在“技巧”二 字,知他人所不知,这样的稿件本栏最最欢迎! 大家公认的 好文章自然会有好的奖励。希望每个人 在这里都有所收获...

r2.gif (980 bytes)
  中国惠普
  3Com中国
  Motorola中国
  CA中国
  Cabletron
  Sony在中国
  西门子WinCC
  爱普生中国
  中国建设银行
  德州仪器(TI)
  问博医药


中国计算机世界出版服务公司版权所有