unit RIOServer;
//charGPT写的代码
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Winapi.WinSock2,
Winapi.MMSystem,
Winapi.RIO;
const
MAX_CLIENTS = 1000;
MAX_BUFFER_SIZE = 1024;
type
TClient = class
public
Socket: TSocket;
Address: TSockAddrIn;
RIO: PRIO_EXTENSION_FUNCTION_TABLE;
RIOBuf: PRIO_BUF;
RequestQueue: PRIO_REQUEST_QUEUE;
DataBuf: array[0..MAX_BUFFER_SIZE - 1] of Byte;
end;
TOnAcceptEvent = procedure(Client: TClient) of object;
TOnReceiveEvent = procedure(Client: TClient; BytesTransferred: DWORD) of object;
TRioserver = class
private
FClients: TList<TClient>;
FListenSocket: TSocket;
FRIONotify: THandle;
FOnAccept: TOnAcceptEvent;
FOnReceive: TOnReceiveEvent;
procedure AcceptClient(Overlapped: POverlapped);
procedure ReceiveData(Client: TClient; Overlap
Windows新异步网络编程模型3 RIO-服务端例子
于 2023-02-26 00:40:39 首次发布
该代码示例展示了一个基于RIO(RegisteredI/ONetworkExtensions)的TCP服务器实现,它支持多个客户端连接,利用RIO接口提高网络I/O性能。服务器监听指定端口,接受新连接,接收并处理数据,以及断开客户端连接。事件处理函数TOnAcceptEvent和TOnReceiveEvent用于处理客户端接入和数据接收事件。

379

被折叠的 条评论
为什么被折叠?



