当前位置:编程学习 > VB >>

急到快爆啦!为什么我的代码无法运行?(Winsock)

代码如下:
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 Integer

Private Sub Command1_Click()
Connections = 100
Me.Winsock1.Close
Me.Winsock1.LocalPort = 80
Me.Winsock1.Listen
Me.List1.AddItem Time & "服务器开始运行"
End Sub

Private Sub Command2_Click()
Me.Winsock1.Close
Me.List1.AddItem Time & "服务器已停止运行"
End Sub

Private Sub Form_Load()
Dim I As Integer
For I = 1 To Connections
Load Winsock1
Next
Me.WebPfad = App.Path & "\"
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Me.Hide
End Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Public 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

窗体时可以运行的,但是却无法正确执行里面的东东……

--------------------编程问答-------------------- 代码太长了,没心机看。。。。。。。。。。。。。。。

我猜想的是80端口已经被其他程序占用了,所以你监测不到~
换其它端口试试! --------------------编程问答-------------------- 我换了端口它还是不行……因为:
实时错误: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 --------------------编程问答-------------------- 不好意思发错了

http://exs.mail.qq.com/cgi-bin/downloadfilepart/svrid31/vb.rar?svrid=31&fid=82ecc5644889819601fd8cfd97d2c1a08ecfa01f33bbfa9e&&txf_fid=209e038dd929d7e27761005991f9baec880a79e2&&txf_sid=ed20b6cc404d37c5d759bbc01580581b26cad2e9

提取码972bb653 --------------------编程问答-------------------- 估计这种问题最难搞,只有比尔大叔能搞定! --------------------编程问答-------------------- 那我知道可能出现错误的地方了!
你的WinSock1控件并不是数组
而你的代码中有几个地方使用了Load Winsock1,而且还是循环使用
正常情况下应该是Load Winsock1(x),你试试把WinSock1的Index属性设置为0再试试
Index属性设置为0后,代码很多地方都需要修改,例如把Me.Winsock1.xxx改为Me.Winsock1(0).xxx --------------------编程问答-------------------- 不知,帮顶
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,