窗口程序集名 | 保 留 | 保 留 | 备 注 |
主窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
服务器 | 服务器套接字 | |
客户端列表 | 客户端信息 | 0 |
服务器.
绑定 (1080
) 服务器.
监听 ()标签_状态.标题 = "服务已启动 - 端口:1080"
新客户端.套接字 = 客户句柄
新客户端.远程地址 =
取远程地址 (客户句柄
)加入成员 (客户端列表, 新客户端
)启动线程 (&处理客户端,
取数组成员数 (客户端列表
),
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
请求头 | 文本型 | | |
目标主机 | 文本型 | | |
目标端口 | 整数型 | | |
请求头 = 客户端列表
[索引
].套接字.
接收文本 ()
如果 (寻找文本 (请求头, "CONNECT", ,
假) > 0
)
解析HTTPS请求 (请求头, 目标主机, 目标端口
)
客户端列表
[索引
].套接字.
发送文本 ("HTTP/1.1 200 Connection Established\r\n\r\n"
)
.否则
解析HTTP请求 (请求头, 目标主机, 目标端口
)
如果真 (目标主机 <> ""
且 目标端口 > 0
)
客户端列表
[索引
].目标套接字.
创建 ()
如果 (客户端列表
[索引
].目标套接字.
连接 (目标主机, 目标端口
))

启动线程 (&转发数据, 索引,
)


客户端列表
[索引
].套接字.
关闭 ()

循环判断首 ()
缓冲区 = 客户端列表
[索引
].套接字.
接收 ()
如果 (取字节集长度 (缓冲区
) > 0
)

客户端列表
[索引
].目标套接字.
发送 (缓冲区
)
跳出循环 ()
循环判断尾 (真)
规则 = 编辑框_域名.内容 + "|" + 组合框_类型.内容
列表框_规则.
加入项目 (规则,
)写到文件 ("config.ini", 列表框_规则.所有项目
)
如果 (取文本中间 (请求头,
寻找文本 (请求头, "Proxy-Authorization:"
), 50
) ≠ "Basic base64密文"
)
返回错误响应 (407, "需要验证"
)