|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 L1yp 于 2018-9-2 23:48 编辑 前几天发支持库源码: https://bbs.125.la/forum.php?mod=viewthread&tid=14220237
由于BUG较多而无法解决,所以打算使用易语言纯源码实现,崩溃了至少还能找下源码,在此非常感谢[@上月由良]的悉心教导和帮我用OD调试找崩溃点....
之所以用C实现是因为之前不知道易语言也可以动态申请结构体,感觉自己实现很麻烦,后来看到由良大佬的代码才知道易语言有这种黑科技 ((易语言白玩了几年,感觉和大佬安装的不是同一个易语言...
异步的UDPSocket,可用做客户端,也可以用于服务器,感觉本地通讯用UDP还是挺不错的
异步的TCPClient,可以创建成千上万个链接,处理线程永远是[CPU核心数*2],图片是向百度发送了ClientHello,也就是HTTPS握手的第一个包,服务器会回3个包.. 图上的粘包了.
异步的TCPServer,可以接收成千上万个客户,处理线程永远是[CPU核心数*2],上面的Client向Server发数据
下面的是Server收到的数据
HTTPServer,本模块只实现了简单的HTTP协议解析,并没有实现HTTPS,期待易友和我一起来Https,感觉搞完可以对这一方面进步很大...
压缩包内的文件列表
Q: 我为什么要做这系列Socket模块?
A: 自己的需求需要用批量客户端,但是限于易语言的阻塞IO导致一个客户端一个线程,我不能接受这个方案,所以了解到了异步IO,在Windows上有IOCP这个异步IO模型,完美解决这个问题,仅仅使用 [CPU核心数*2]的线程数量就可以处理成千上万的链接甚至更多...
Q:为什么不用已有的框架?
A:不太喜欢带DLL,害怕C++ Runtime Error....,而且功能太多用不到,更重要是自己想学习下这些API,毕竟自己会得多点总会好点..
Q:为什么做TCPServer?
A:因为做完TCPClient,感觉TCPServer差不多(其实差的挺多,还有点难),所以就继续深入做了TCPServer.
Q:易语言已经有很多HttpServer了,为什么还要自己做?
A:纯属爱好和学习,如果您和我一样热爱造轮子,可以加群和我一起交流一起进步.
关于HTTP,Server研究了一天的HTTPS,差点手撸SSL协议,撸到Server的证书下发的时候,发现[证书]/[加密]有点复杂,而自己这方面的知识储备又少之又少,完全达不到实现HTTPS的要求,所以先搁着,如果大家有兴趣,可以加群一起讨论,一起搞.
我做这个都是为了学习和自己项目的需求0 0
最后,如果大家发现了什么BUG无法解决,可以联系我解决,我希望论坛的易友能一起进步.
elib群号:547525064
本群讨论支持库制作,模块制作,加群请写加群验证信息.
最后感谢elib全体大佬~
Winsocket.rar
(1.83 MB, 下载次数: 1606)
|
评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 鱼木|主题: 1546, 订阅: 152
- · 精品集|主题: 611, 订阅: 64
- · 坐标贴|主题: 224, 订阅: 13
- · |主题: 277, 订阅: 10
|