突触 TTcpBlockSocket
Synapse TTcpBlockSocket
我过去大部分时间都使用 Indy,但决定修改现有项目并使用 synapse 代替 Indy。虽然,我确实有一个小问题要问,即我们都知道,每当我们在 Indy 中创建套接字对象时,它都会在自己的线程上运行,它会在它创建的线程上执行所有 IO 操作,并且直到我认为对象已被释放。
所以我非常想在突触上模仿这个。
tl;博士:
如何创建一个 Ttcpblocksocket
对象,使其在一个线程上运行其所有 IO 操作,该线程在对象空闲之前不会终止?
两个库都没有创建线程来管理客户端套接字操作。这允许在应用程序主线程上创建和使用它们 - 例如在运行 HTTP 请求的 VCL 事件处理程序中 - 或者将它们移动到线程(例如在后台等待从服务器发送到客户端的消息).
Indy 中有 TIdTCPServer 组件,它创建线程来并发处理传入数据,但 Synapse 库 AFAIK 中没有 TCP 多线程服务器组件。
tl;dr
Indy 和 Synapse TCP 客户端 组件在线程使用方面没有显着差异。
我过去大部分时间都使用 Indy,但决定修改现有项目并使用 synapse 代替 Indy。虽然,我确实有一个小问题要问,即我们都知道,每当我们在 Indy 中创建套接字对象时,它都会在自己的线程上运行,它会在它创建的线程上执行所有 IO 操作,并且直到我认为对象已被释放。
所以我非常想在突触上模仿这个。
tl;博士:
如何创建一个 Ttcpblocksocket
对象,使其在一个线程上运行其所有 IO 操作,该线程在对象空闲之前不会终止?
两个库都没有创建线程来管理客户端套接字操作。这允许在应用程序主线程上创建和使用它们 - 例如在运行 HTTP 请求的 VCL 事件处理程序中 - 或者将它们移动到线程(例如在后台等待从服务器发送到客户端的消息).
Indy 中有 TIdTCPServer 组件,它创建线程来并发处理传入数据,但 Synapse 库 AFAIK 中没有 TCP 多线程服务器组件。
tl;dr
Indy 和 Synapse TCP 客户端 组件在线程使用方面没有显着差异。