gpt4 book ai didi

delphi - 阻塞套接字会触发哪些事件?

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

出于好奇,如果 TServerSocket/TClientSocket 是 ThreadBlocking 类型,会触发哪些事件?

最佳答案

TClientSocket 在阻塞模式下会触发除 OnReadOnWrite 之外的所有事件。此外,只有当客户端关闭自己的套接字端时,远程断开连接才会触发 OnDisconnect 事件。读取/写入数据的代码负责检测这些套接字状态。通过 TWinSocketStream.WaitForRead() 或 WinSock select() 函数检测可读性。仅通过 WinSock select() 函数检测可写性。远程断开连接的检测方法是首先检测可读性,然后 TCustomWinSocket.ReceiveBuf()TWinSocketStream.Read() 返回 0。

默认情况下,处于阻塞模式的

TServerSocket 会触发其所有事件。但是,如果您从覆盖虚拟 ClientExecute() 方法的 TServerClientThread 派生类,然后从 OnGetThread 返回该类的实例事件,那么您将丢失 OnReadOnWrite 事件,并且必须在阻塞模式下使用与 TClientSocket 类似的逻辑来检测这些套接字状态。

关于delphi - 阻塞套接字会触发哪些事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959962/

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