突触 TTcpBlockSocket

Synapse TTcpBlockSocket

我过去大部分时间都使用 Indy,但决定修改现有项目并使用 synapse 代替 Indy。虽然,我确实有一个小问题要问,即我们都知道,每当我们在 Indy 中创建套接字对象时,它都会在自己的线程上运行,它会在它创建的线程上执行所有 IO 操作,并且直到我认为对象已被释放。

所以我非常想在突触上模仿这个。

tl;博士:

如何创建一个 Ttcpblocksocket 对象,使其在一个线程上运行其所有 IO 操作,该线程在对象空闲之前不会终止?

两个库都没有创建线程来管理客户端套接字操作。这允许在应用程序主线程上创建和使用它们 - 例如在运行 HTTP 请求的 VCL 事件处理程序中 - 或者将它们移动到线程(例如在后台等待从服务器发送到客户端的消息).

Indy 中有 TIdTCPServer 组件,它创建线程来并发处理传入数据,但 Synapse 库 AFAIK 中没有 TCP 多线程服务器组件。

tl;dr

Indy 和 Synapse TCP 客户端 组件在线程使用方面没有显着差异。