资源简介
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最小系统
相关资源
- 通信软件的具体实例──基于Socket的
- 用Socket编程实现FTP
- websocket实现一对一聊天
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- SOCKET 网络编程 计算机网络 作业 客户
- linux 网络实验 ftp程序
- 用Socket写的简易FTP服务器和客户端
- socket小工具(可方便建立TCP UDP的soc
- socket客户端源码
- 基于CSocket的多人聊天室
- socket文件传输源码
- Socket自制系统
- HP用SOCKET实现(客户端---服务端)
- 利用高压VCO设计高性能锁相环
- Hillstone SA-2003高性能纯硬件安全网关产
- Hillstone SR-550高性能安全路由器产品手
- Hillstone SR-560高性能安全路由器产品手
- Hillstone SR-320高性能安全路由器产品手
- 建立在Sun平台上的高性能计算基础设
- 超高性能微波天线馈源系统设计
- Infortrend EonStor磁盘阵列保证公安监控
- Infortrend高性能存储 不惧风暴
- HP Kayak高性能PC选择Adaptec RAID解决方案
- 高性能混凝土在沿空留巷巷旁充填中
- IBM 闪存高性能助力企业业务创新
- IBM System Storage DS8000灵活的高性能存储
- GPFS石油石化行业 高性能计算解决方案
- IBM System Storage TS3400磁带库轻松实现高
- 高性能随需应变生命科学领域
- IBM System Storage DS8000面向关键企业业务
评论
共有 条评论