易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

TCP客户端多线程发送同步接收,核心支持库和API实现   [复制链接]

    2021-06-28 20:03:29
    进阶教程源码
    易语言资源网
    7198 次浏览
    来源链接

TCP客户端大多都是异步操作,发送数据后只能在回调里处理,而有一些特殊业务可能需要发送后同步返回。

部分模块或支持库也有同步返回,但只支持单线程单包返回,经常看到有人在问这方面的问题

所以吃完粽子后趁消化之余闲着没事就顺手写了个  多线程TCP发送数据同步接收

实现思路:

1:发送数据前取一个唯一标识,和创建一个事件,保存该事件ID和唯一标识放到数组里

2:把唯一标识写入到数据里一并发送到服务器,然后调用事件等待

3:服务器接收到数据后处理完相关命令ID,在发回给客户端的数据里带上客户端发来的唯一标识

4:客户端收到数据时取出 唯一标识,再到数组里通过唯一标识取出 事件ID,再把数据放到数组里,触发事件ID,另外线程那边发送的就能收到通知了。

5:在发送线程收到事件触发后,根据唯一标识在数组里取出服务器返回的数据,再释放事件ID和删除相关缓存数据

这样就完成了发送数据后同步接收过程

TCP套件用的是  客户端/服务器组件

代码包含了 组包/拆包

该思路方法通用于所有TCP模块或支持库,如有需要请自行移植!

代码写得有点粗糙,有问题欢迎指正,不喜勿喷!

QQ截图20210614220752.png

QQ截图20210614220801.png



点我下载 (已有 823 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
客户端_同步接收.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
多线程支持库 2.0 5F99C1642A2F4e03850721B4F5D7C3F8
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
服务器_同步接收.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
多线程支持库 2.0 5F99C1642A2F4e03850721B4F5D7C3F8


[错误报告]   上一篇:【首发】读取系统Change Journ...     下一篇:深度学习标注工具 3.0...