|
分享例程
界面截图: |
|
备注说明: |
支持Socksd理
支持Httpd理
支持Http隧道 |
本帖最后由 malei1194627023 于 2022-12-5 23:13 编辑
1.大家最关心的:DLL没有任何使用限制
2.本模块支持多线程,但是不支持跨线程,最大的特色就是事件了,但是稍显麻烦的也是事件,事件在易语言里比较草蛋,请务必查看Demo事件使用方式
3.模块基于C封装过来,不开源
4.类都提供了初始化()和释放()方法,必须匹配调用
5.封装了中文命令和英文命令,全是写的生成器根据头文件生成的,类型映射难免有错误.有错误请一定记得反馈我!
6.所有类的事件的回调函数原型都是一样的,使用时根据参数中的事件ID判断事件的类型
7.事件参数指针是一个栈变量结构体指针,出了回调函数,就会销毁,所以不要把事件参数拿出回调函数之外使用,如果没崩溃,只是运气好,实在要用,就深拷贝!
8.每个类都有很多不同种类的事件,如果一个一个参数的映射,写回调不仅记不住还麻烦死,所以用了结构体.事件参数中映射char*用的是整数型,原因有以下几点:
8.1 char* 如果直接映射为文本型的话,在易语言这边,回调函数结束,对应内存就会被释放,然后回到DLL,就会导致奔溃
8.2 也考虑过不在dll里释放的方式,直接交给接收者释放,但是不符合谁申请谁释放的原则,再则也许事件没人接收就泄露了
8.2 char*不仅仅表示文本,比如Http请求时,也许在下载东西呢.所以有些事件参数中,多了一个len参数,表示数据的长度,这种情况,请使用指针到字节集进行转换
9.回调函数的4个参数:
9.1第一个参数:事件ID(整数型) 所有事件ID都定义了常量,以PSM_EVENT_ID_XXXX开通
9.2第二个参数:自定义参数(整数型) 解决"类回调的问题",论坛上的方式是根据类方法索引取地址,个人感觉不是很优雅,自定义参数在初始化时可以传指针地址,就可以传任意参数了
9.3第三个参数:事件参数指针(整数型) DLL内部结构体栈变量地址,在回调函数内有效
9.4第四个参数:组件指针(整数型) 主要是为了解决回调中使用组件方法的问题,提供了加载组件指针(组件指针)这个方法,用来在回调中操作当前组件,比如中断当前方法的执行
10.有些参数比如日志等级之类的,为了方便记忆,也都定义了常量
11.本模块返回值没有提供编码转换,比如POST请求参数或响应都是字节集,请自行封装
简单介绍下Http和WSClient的功能,更多内容请查看方法说明
HTTP:
支持HTTP2.0
支持IPv6
支持设置出站IP
支持各种认证方式
支持分块传输
支持大文件下载
支持普通Http代理
支持Http隧道
支持Socks4,Socks4A,Soocks5
支持系统代理
支持传输进度
支持TLS1 TLS1.1 TLS1.2 TLS1.3 SSL2 SS3
支持证书
WSClient:
支持WS/WSS
自动回应PING
支持IPv6
支持设置帧最大大小
支持设置出站IP,出站端口
支持添加Cookie
支持缓存整个消息,不分包
支持普通Http代理
支持Http隧道
支持Socks4,Socks4A,Soocks5
支持系统代理
支持TLS1 TLS1.1 TLS1.2 TLS1.3 SSL2 SS3
支持证书
修改了以下Demo,之前Demo中手滑未调用初始化方法,导致崩溃....
加入了一个WebSocket测试服务端,文件过大,放到网盘中下载
微云:https://share.weiyun.com/2sJJktIB
百度网盘: https://pan.baidu.com/s/1y7vyFGSapdkfIdyspPuAWA?pwd=1234 提取码: 1234
最后打个广告:有ftp/ftpserver/imap/pop3/smtp/ssh/sshserver/scp/sftp/sftpserver定制DLL需求请联系我
|
评分
-
查看全部评分
|