VB 版 (精华区)

发信人: zxfsnow (最近睡眠太少), 信区: VB
标  题: Socks 2nd代理
发信站: 哈工大紫丁香 (2000年06月07日19:58:36 星期三), 转信

发信人: zhch (zhch from nju), 信区: VB
标  题: Socks 2nd代理
发信站: NJU Lily BBS (Tue Mar 23 13:19:19 1999), 站内信件

需要一个winsock1,一个winsock2(),一个winsock3()控件。

DefLng A-Z

Private Sub Form_Load()
Logs "System starts"
Form1.Visible = False
Winsock1.Bind 1080
Winsock1.Listen
For n = 1 To 10
    Load Winsock2(n)
    Load Winsock3(n)
Next n
End Sub

Private Sub Form_Unload(Cancel As Integer)
Logs "System ends"
End Sub

Private Sub Timer1_Timer()
For n = 1 To 10
    s = Winsock2(n).State
    p = Winsock3(n).State
    If s > 7 Or p > 7 Then
        Winsock2(n).Close
        Winsock3(n).Close
    End If
Next n
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
For n = 1 To 10
    If Winsock2(n).State = 0 Then
        Winsock3(n).Close
        Winsock3(n).LocalPort = 0
        Winsock3(n).Connect "下一级socks代理", 1080
        While Winsock3(n).State < 7
            DoEvents
        Wend
        Winsock2(n).Close
        Winsock2(n).Accept requestID
        Logs "User comes from " & Winsock2(n).RemoteHostIP
        Exit For
    End If
Next n
End Sub

Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ReDim a(0) As Byte
Winsock2(Index).GetData a
If Winsock3(Index).State = 7 Then Winsock3(Index).SendData a
End Sub

Private Sub Winsock3_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ReDim a(0) As Byte
Winsock3(Index).GetData a
If Winsock2(Index).State = 7 Then Winsock2(Index).SendData a
End Sub

Sub Logs(d$)
Open "socks.log" For Append As #1
Print #1, "At " & Str(Now) & "  " & d$
Debug.Print "At " & Str(Now) & "  " & d$
Close 1
End Sub

--
※ 修改:.zhch 于 Mar 23 13:20:23 修改本文.[FROM: dsl.nju.edu.cn]

--

 以科计为本,以产业报国!
  超越自我,飞跃无限!
  

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.039毫秒