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毫秒