文件名称:SocketIOCP:一个 用 C# Socket 实现 的 IOCP
文件大小:486KB
文件格式:ZIP
更新时间:2024-05-30 17:27:53
socket csharp tcp dotnet iocp
SocketIOCP 一个 用 C# Socket 实现 的 IOCP 这是一个 用 C# Socket 实现 的 IOCP 。 采用 Listener + Dispatch + Worker 的 设计, Listener 是一个线程, Dispatch 是一个线程, Worker 是 一组线程 。 一个 Socket 对应 一个 Worker , 一个 Worker 对应一个线程 。 Listener 负责监听 Accept() , 将 Socket 放到 SocketQueue 中, Dispatch 负责 从 SocketQueue 中 取出 Socket , 为 Socket 创建一个 Worker, 并 启动 Worker 。 测试结果, 可以 达到 每秒 15000 个请求, 和 常规写法 ReceiveAsync() 是 一个水平 。 两者 的 CPU 占用率
【文件预览】:
SocketIOCP-master
----SocketIOCPSolution.v12.suo(103KB)
----SocketIOCPSolution.sln(2KB)
----Test()
--------Form1.cs(5KB)
--------Program.cs(494B)
--------Form1.resx(6KB)
--------Properties()
--------Test.csproj(4KB)
--------Form1.Designer.cs(7KB)
--------App.config(184B)
--------obj()
--------bin()
----SocketIOCP()
--------IOCallback.cs(332B)
--------Worker.cs(6KB)
--------ChainList.cs(3KB)
--------Log.cs(242B)
--------Job.cs(878B)
--------Properties()
--------SocketIOCP.csproj(3KB)
--------MemoryStreamBuffer.cs(664B)
--------Listener.cs(6KB)
--------Q.cs(2KB)
--------obj()
--------bin()
----README.md(3KB)
----Server()
--------Program.cs(3KB)
--------Server.csproj(3KB)
--------Properties()
--------App.config(1KB)
--------obj()
--------bin()