代码如下:
Option Explicit
Dim Connections As Integer
Dim Strdata As String
Dim Index As Integer
Dim conlab As Integer
Dim findget As String
Dim spc2 As String
Dim Page As String
Dim Nr As String
Dim Tx As String
Dim Lg As String
Dim Tx1 As String
Dim m As IntegerPrivate Sub Command1_Click()
Connections = 100
Me.Winsock1.Close
Me.Winsock1.LocalPort = 80
Me.Winsock1.Listen
Me.List1.AddItem Time & "服务器开始运行"
End SubPrivate Sub Command2_Click()
Me.Winsock1.Close
Me.List1.AddItem Time & "服务器已停止运行"
End SubPrivate Sub Form_Load()
Dim I As Integer
For I = 1 To Connections
Load Winsock1
Next
Me.WebPfad = App.Path & "\"
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Me.Hide
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Ip Strdata, Index, "Connect"
If Index = 0 Then
Connections = Connections + 1
conlab = conlab + 1
Load Winsock1
Winsock1.LocalPort = 0
Winsock1.Accept requestID
End If
End SubPrivate Sub Ip(GetD, Index, ConnectD)
If ConnectD = "Connect" Then
Me.List1.AddItem ConnectD & " " & Time & " " & Winsock1.RemoteHostIP
Else
Me.List1.AddItem ConnectD & " " & Time & " " & Winsock1.RemoteHostIP
End If
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Strdata As String
Winsock1.GetData Strdata
If Mid$(Strdata, 1, 3) = "GET" Then
findget = InStr(Strdata, "GET")
spc2 = InStr(findget + 5, Strdata, "")
Page = Mid$(Strdata, findget + 5, spc2 - (findget + 4))
Ip Strdata, Index, "Asked For" & Page
SendPage Page, Index
End If
End SubPublic Sub SendPage(Page, Index)
On Error GoTo Fehler
If Page = "" Then Page = "index.html"
Nr = FreeFile
Tx = ""
Lg = FileLen(WebPfad & Page)
Open WebPfad & Page For Binary As Nr
Tx1 = ""
For m = 1 To Lg
Get #Nr, , Tx
Tx1 = Tx1 + Tx
Next
Close Nr
Winsock1.SendData Tx1
Fehler: If Err.Number = 53 Then Winsock1.SendData "您所访问的页面不存在!"End Sub窗体时可以运行的,但是却无法正确执行里面的东东……
Option Explicit
Dim Connections As Integer
Dim Strdata As String
Dim Index As Integer
Dim conlab As Integer
Dim findget As String
Dim spc2 As String
Dim Page As String
Dim Nr As String
Dim Tx As String
Dim Lg As String
Dim Tx1 As String
Dim m As IntegerPrivate Sub Command1_Click()
Connections = 100
Me.Winsock1.Close
Me.Winsock1.LocalPort = 80
Me.Winsock1.Listen
Me.List1.AddItem Time & "服务器开始运行"
End SubPrivate Sub Command2_Click()
Me.Winsock1.Close
Me.List1.AddItem Time & "服务器已停止运行"
End SubPrivate Sub Form_Load()
Dim I As Integer
For I = 1 To Connections
Load Winsock1
Next
Me.WebPfad = App.Path & "\"
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Me.Hide
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Ip Strdata, Index, "Connect"
If Index = 0 Then
Connections = Connections + 1
conlab = conlab + 1
Load Winsock1
Winsock1.LocalPort = 0
Winsock1.Accept requestID
End If
End SubPrivate Sub Ip(GetD, Index, ConnectD)
If ConnectD = "Connect" Then
Me.List1.AddItem ConnectD & " " & Time & " " & Winsock1.RemoteHostIP
Else
Me.List1.AddItem ConnectD & " " & Time & " " & Winsock1.RemoteHostIP
End If
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Strdata As String
Winsock1.GetData Strdata
If Mid$(Strdata, 1, 3) = "GET" Then
findget = InStr(Strdata, "GET")
spc2 = InStr(findget + 5, Strdata, "")
Page = Mid$(Strdata, findget + 5, spc2 - (findget + 4))
Ip Strdata, Index, "Asked For" & Page
SendPage Page, Index
End If
End SubPublic Sub SendPage(Page, Index)
On Error GoTo Fehler
If Page = "" Then Page = "index.html"
Nr = FreeFile
Tx = ""
Lg = FileLen(WebPfad & Page)
Open WebPfad & Page For Binary As Nr
Tx1 = ""
For m = 1 To Lg
Get #Nr, , Tx
Tx1 = Tx1 + Tx
Next
Close Nr
Winsock1.SendData Tx1
Fehler: If Err.Number = 53 Then Winsock1.SendData "您所访问的页面不存在!"End Sub窗体时可以运行的,但是却无法正确执行里面的东东……
解决方案 »
- 关于codesoft和bartender的比较
- 关于数据采集卡编程(用vb)如何实现
- 关于API函数
- 在DataGrid控件中可以放置Combox控件吗?
- 听说广州发生“鼠疫”(未证实),各位要去广州请注意?详情见内URL!
- 有一string="vbBlue",怎样把他赋给form1.backcolor
- 各位高手请问怎么才能让文本框中输入的字符在文本框中居中
- 有办法让激光打印机连续打(或彩喷),只换行,不换页,象针打滚筒纸一样
- VB里面是否可以控制modem或ISDN卡的拨号上网?
- 如何在vsflexgrid控件中直接编辑
- 救命!为什么这个Winsock出现实时错误?
- 输入资料后光标跳到MSFLEXGRID的对应数据上,要怎样做.
实时错误:361
不能加载或卸载该对象程序下载地址:
http://exs.mail.qq.com/cgi-bin/downloadfilepart/svrid27/%B9%A4%B3%CC1.exe?svrid=27&fid=7144f453582ea00aa872d0cb890c99ed3f2b8319fe65edf3&&txf_fid=3bcbd532b2ac6c5c74515495e747f1cd5b974d73&&txf_sid=373bc3695fa5c47f985b52d07aeeffe9da97046d
提取码2d88a0b0
你的WinSock1控件并不是数组
而你的代码中有几个地方使用了Load Winsock1,而且还是循环使用
正常情况下应该是Load Winsock1(x),你试试把WinSock1的Index属性设置为0再试试
Index属性设置为0后,代码很多地方都需要修改,例如把Me.Winsock1.xxx改为Me.Winsock1(0).xxx