gpt4 book ai didi

delphi - 在 Delphi 中进行异步套接字编程的惯用方法是什么?

转载 作者:行者123 更新时间:2023-12-03 14:42:04 26 4
gpt4 key购买 nike

在 Delphi 中编写网络代码时使用 Windows 风格的重叠异步套接字 I/O 的正常方式是什么?

这是我之前对这个问题的研究:

Indy组件看起来完全同步。另一方面,虽然 ScktComp 单元确实使用 WSAAsyncSelect,但它基本上只异步 BSD 风格的多路复用套接字应用程序。您会被转储到单个事件回调中,就好像您刚刚从循环中的 select() 返回一样,并且必须自己完成所有状态机导航。

.NET 的情况要好得多,使用 Socket.BeginRead/Socket.EndRead,其中延续直接传递到 Socket.BeginRead,这就是您重新开始的地方。编码为闭包的延续显然拥有您需要的所有上下文,甚至更多。

最佳答案

我发现 Indy 虽然一开始是一个更简单的概念,但由于需要在应用程序终止时杀死套接字以释放线程,因此管理起来很困难。此外,我还让 Indy 库在操作系统补丁升级后停止工作。 ScktComp 非常适合我的应用程序。

关于delphi - 在 Delphi 中进行异步套接字编程的惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com