gpt4 book ai didi

delphi - Delphi ScktComp : When is the onWrite event being fired?

转载 作者:行者123 更新时间:2023-12-03 18:44:27 25 4
gpt4 key购买 nike

我想到的是,当我通过SendBuf()将字节直接写入套接字连接时,ClientSocket的onWrite事件是多余的。

我的想法是在沙漠中的某个地方吗?

Delphi文档也很糟糕,因为它只是说:“为onWrite事件编写一个例程以写入套接字连接。”

最佳答案

使用异步IO时(换句话说,当ClientType = ctNonBlocking时)将使用OnWrite。当套接字准备好发送数据时调用。

因此,您的想法只剩下一半:如果您使用的是ctBlocking,则根本不用理会OnWrite。如果您需要该线程来发送数据并同时处理其他内容,请使用ctNonBlocking并在OnWrite中写入套接字。

当您使用异步套接字时,Windows将向您的套接字发送一个CM_SOCKETMESSAGE,由TCustomWinSocket.CMSocketMessage处理。当该消息的SelectEvent属性设置为FD_WRITE时,将(最终)调用OnWrite。

这里的魔术成分是在TCustomWinSocket.DoSetAsyncStyles中对WSAAsyncSelect的调用。

关于delphi - Delphi ScktComp : When is the onWrite event being fired?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192647/

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