1 Star 0 Fork 90

大湿胸 / Bouyei.NetFactory

forked from bouyei / Bouyei.NetFactory 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#客户端、服务端连接例子

int port = 12346;
//服务端
INetServerProvider serverSocket = NetServerProvider.CreateProvider();      
//接收到数据包事件
serverSocket.ReceiveOffsetHandler = new OnReceiveOffsetHandler((sToken, buff, offset, count) =>
{
	try
	{
		string info = Encoding.UTF8.GetString(buff, offset, count);
		Console.WriteLine(info);
	}
	catch (Exception ex)
	{
		Console.WriteLine(ex.ToString());
	}
});
//接收到客户端连接
serverSocket.AcceptHandler = new OnAcceptHandler((sToken) =>
{
	serverSocket.Send(new SegmentOffsetToken()
	{
		sToken = sToken,
		dataSegment = new SegmentOffset()
		{
			buffer = Encoding.Default.GetBytes("welcome" + DateTime.Now.ToString())
		}
	}, false);

	Console.WriteLine("accept" + sToken.TokenIpEndPoint);
});
//收到断开连接
serverSocket.DisconnectedHandler = new OnDisconnectedHandler((stoken) =>
{
	Console.WriteLine("disconnect" + stoken.TokenId);
});
bool isOk = serverSocket.Start(port);
if (isOk)
{
	Console.WriteLine("已启动服务。。。");
	//客户端
	INetClientProvider clientSocket = NetClientProvider.CreateProvider();

	//异步连接
	clientSocket.ReceiveOffsetHandler = new OnReceiveOffsetHandler((sToken, buff, offset, count) =>
	{
		try
		{
			Console.WriteLine("rec:" + Encoding.Default.GetString(buff,offset,count));
		}
		catch (Exception ex)
		{

		}
	});
	clientSocket.DisconnectedHandler = new OnDisconnectedHandler((stoken) =>
	{
		Console.WriteLine("clinet discount");
	});
	again:
	bool rt = clientSocket.ConnectTo(port, "127.0.0.1");/* 10.152.0.71*/
	if (rt)
	{
		for (int i = 0; i < 10000; i++)
		{
				Thread.Sleep(50);
			if (i % 100 == 0)
			{
				Console.WriteLine(clientSocket.BufferPoolCount + ":" + i);
			}
			bool isTrue = clientSocket.Send(new SegmentOffset(Encoding.Default.GetBytes("hello"+DateTime.Now)), false);
		}
	}
}

#协议模块例子

INetProtocolProvider protocolProvider = NetProtocolProvider.CreateProvider();
//数据内容打包成字节
byte[] content = new byte[] { 1, 3, 4, 0xfe, 0x01, 0xfd, 0x02 };
byte[] buffer= protocolProvider.Encode(new Packet()
{
	pHeader = new PacketHeader()
	{
		packetAttribute = new PacketAttribute()
		{
			packetCount = 1,//自定义,指定该消息需要分多少个数据包发送才完成
		},
		packetId = 0x10//根据业务自定义
	},
	pPayload = content//携带的数据内容
});
//使用接收管理缓冲池解析数据包
INetPacketProvider pkgProvider = NetPacketProvider.CreateProvider(1024);
bool rt= pkgProvider.SetBlocks(buffer, 0, buffer.Length);
rt = pkgProvider.SetBlocks(buffer, 0, buffer.Length);
var dePkg= pkgProvider.GetBlocks();

空文件

简介

.net 高性能大并发socket通信库(.net core 和.net framework),低内存稳定消耗,每秒可传150mb数量,服务端占用5mb内存左右,浮动峰值在500MB左右 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/iframework/Bouyei.NetProviderFactory.git
git@gitee.com:iframework/Bouyei.NetProviderFactory.git
iframework
Bouyei.NetProviderFactory
Bouyei.NetFactory
master

搜索帮助

14c37bed 8189591 565d56ea 8189591