-
大小: 38KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-05-10
- 语言: 其他
- 标签: SocketAsyncE SOCKET IOCP
资源简介
SocketAsyncEventArgs 单机测试成功突破 6W,59999 还是 100%连接上去的 所以估计最高性能可能达到10W以上
值得说明的是 建议使用 SocketAsyncEventArgs 进行监听的 读取数据包. 因为 这2个地方的 SocketAsyncEventArgs 是同一个,并且内存和 SocketAsyncEventArgs 对象都好回收 好控制
如果使用 SocketAsyncEventArgs 发送数据包那么 SocketAsyncEventArgs 就不好控制了 所以使用传统的异步模式比较好. 而数据包传出使用 异步代理 进行传出以免堵塞 SocketAsyncEventArgs 线程.
MSND 的 SocketAsyncEventArgs 除了SocketAsyncEventArgsPOOL 和内存Manager 其他纯属扯淡.最好别效仿.
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
namespace ZYSocketSuper
{
internal sealed class BufferManager
{
private Byte[] buffer;
private Int32 bufferSize;
private Int32 numSize;
private Int32 currentIndex;
private Stack freeIndexPool;
public BufferManager(Int32 numsize Int32 buffersize)
{
this.numSize = numsize;
this.bufferSize = buffersize;
}
public void Inint()
{
buffer = new byte[numSize];
freeIndexPool = new Stack(numSize / bufferSize);
}
internal void FreeBuffer(SocketAsyncEventArgs args)
{
freeIndexPool.Push(args.Offset);
args.SetBuffer(null 0 0);
}
internal Boolean SetBuffer(SocketAsyncEventArgs args)
{
if (this.freeIndexPool.Count > 0)
{
args.SetBuffer(this.buffer this.freeIndexPool.Pop() this.bufferSize);
}
else
{
if ((this.numSize - this.bufferSize) < this.currentIndex)
{
return false;
}
args.SetBuffer(this.buffer this.currentIndex this.bufferSize);
this.currentIndex += this.bufferSize;
}
return true;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13312 2009-12-26 14:04 ZYSocketSuper\bin\Debug\ZYSocketSuper.exe
文件 34304 2009-12-26 14:04 ZYSocketSuper\bin\Debug\ZYSocketSuper.pdb
文件 14328 2009-12-26 14:04 ZYSocketSuper\bin\Debug\ZYSocketSuper.vshost.exe
文件 490 2009-06-11 05:14 ZYSocketSuper\bin\Debug\ZYSocketSuper.vshost.exe.manifest
文件 1514 2009-12-26 00:15 ZYSocketSuper\BufferManager.cs
文件 358 2009-12-26 14:04 ZYSocketSuper\obj\Debug\ZYSocketSuper.csproj.FileListAbsolute.txt
文件 13312 2009-12-26 14:04 ZYSocketSuper\obj\Debug\ZYSocketSuper.exe
文件 34304 2009-12-26 14:04 ZYSocketSuper\obj\Debug\ZYSocketSuper.pdb
文件 2435 2009-12-26 13:41 ZYSocketSuper\Program.cs
文件 1358 2009-12-25 23:03 ZYSocketSuper\Properties\AssemblyInfo.cs
文件 2011 2009-12-25 23:26 ZYSocketSuper\SocketAsyncEventArgsPool.cs
文件 12670 2009-12-26 14:04 ZYSocketSuper\ZYSocketSuper.cs
文件 2642 2009-12-25 23:31 ZYSocketSuper\ZYSocketSuper.csproj
文件 929 2009-12-25 23:03 ZYSocketSuper.sln
目录 0 2009-12-25 23:03 ZYSocketSuper\obj\Debug\TempPE
目录 0 2009-12-25 23:26 ZYSocketSuper\bin\Debug
目录 0 2009-12-26 14:04 ZYSocketSuper\obj\Debug
目录 0 2009-12-25 23:02 ZYSocketSuper\bin
目录 0 2009-12-25 23:02 ZYSocketSuper\obj
目录 0 2009-12-25 23:03 ZYSocketSuper\Properties
目录 0 2009-12-26 14:04 ZYSocketSuper
----------- --------- ---------- ----- ----
133967 21
- 上一篇:提取链接.txt
- 下一篇:TMS320F28035最小系统
相关资源
- webSocketChat.zip
- Delphi的WebSocket客户端实现
- delphi websocket 用socket实现
- 基于DES加解密的Socket聊天程序代码
- spring-websocket实时统计报表
- Spring+WebSocket+SockJS简单DEMO
- raw socket来实现ip报文的发送
- Socket多线程.rar
- WebSocket 测试工具自制
- tcp/ip sockets in c 源码
- Qt 网络通信源码
- 网络抢答系统CompetitionResponder(原创)
- 手机采集摄像头视频socket实时传播
- Wince下socket实现的HTTP类,支持POST和
- tcl入门教程(包括常用的socket多线程
- socket服务端和客户端互相发送消息、
- delphi7 使用socket实现websocket
- SOCKET TCP 文件传输 客户端 服务器端
- WebSocketDemo
- 基于socket的聊天程序报告
- WebSocket+Tomcat8实现-Web版即时聊天室
- springboot工程基于netty-socketio的 web推送
- websocket使用(spring mvc)
- qt TCP网络编程与聊天室的实现
- LoadRunner_Winsocket协议知识总结(修正版
- Socket网络编程进阶与实战慕课网课程
- 高性能的socket通讯服务器完成端口模
- Socket网络编程进阶与实战视频-百度云
- 用WindowsSocket实现局域网上的语音实时
- socket连接传送数据,控制家电led
评论
共有 条评论