Code Monkey home page Code Monkey logo

haoyuenet's Introduction

HaoYueNet

.Net8/.NetStandard2.0 的,泛用形自建高性能网络库

基于IOCP进一步深度优化而来

网络库本身无依赖,可以用于任何数据通讯 (网络库本身不依赖Protobuff,仅上层示例依赖)

不用关心网络底层,直接引用或继承,即可便捷使用。

示例demo中,包含服务端和客户端双端库,可直接用于各类.Net版本程序或Unity程序,做TCP通讯底层库。

并包含心跳包等检测、连接管理、Protobuff解析,优化后的高性能收发等等。

#使用基础事件回调即可:

OnClientNumberChange//连接数发生变化

OnDisconnected//断开连接

OnNetLog//来自网络库的日志信息

OnReceive//收到网络数据

#Simple目录下,有实例客户端和实例服务端

示例中,使用本网络库,您可以继续示例项目写,也可以参照示例代码。

实现了:

事件机制,

客户端基本框架(连接管理,数据管理,消息收发,指定用户发送)

服务端基本框架(连接管理,用户管理,消息收发,指定用户发送,广播等)

简单无OAuth登录,

用户列表,

基础的Protobuff设计,

基础聊天功能,

整合Protobuff生成。

#最简接入示例(服务端和客户端) 若您的应用相对简单,您甚至可以基于Sample增加功能,快速达成目标.

Server:

TcpSaeaServer Srv = new TcpSaeaServer(1024, 1024);//实例化,最大连接数和最大接收字节数
Srv.OnClientNumberChange += (int num, AsyncUserToken client) => { /* 连接数发生变化*/};
Srv.OnDisconnected += (AsyncUserToken client) => { /* 断开连接 */};
Srv.OnNetLog += (string msg) => { /* 来自网络库的日志信息 */};
Srv.OnReceive += (AsyncUserToken client, int CMDID, byte[] data) => {
    /* 收到网络消息 CMDID和数据 */
    Srv.SendMessage(client, new byte[1] { 0x00 });//给指定连接发送数据
};
Srv.Init();//初始化
Srv.Start(new IPEndPoint(IPAddress.Any.Address, 6000));//启动

Client:

NetworkHelperCore network = new NetworkHelperCore();
network.OnClose += ()=> { /* 断开连接 */}; 
network.OnConnected += (bool IsConnect) => { /* 连接回到,成功或失败 */};
network.OnLogOut += (string msg) => { /* 来自网络库的日志信息 */};
//指定接收服务器数据事件
network.OnReceiveData += (int CMDID, int ERRCODE, byte[] data) => {
    /* 收到网络消息 CMDID和数据 */
    network.SendToServer(CMDID, new byte[1] { 0x00 });//给服务器发送数据
};
network.Init("127.0.0.1", 6000);//连接服务器

#引用姿势

方式1.直接解决方案引用项目

方式2.直接引用dll文件

服务端

HaoYueNet.ServerNetwork.dll

客户端

HaoYueNet.ClientNetwork.dll (.net8 推荐跨平台.net程序使用)

HaoYueNet.ClientNetworkNet.Standard2.dll (.NetStandard 2.0标准的库,用于各种.Net运行时,传统.Net4.X版本,用于传统.NetFX程序或Unity游戏,或Mono程序)

haoyuenet's People

Contributors

sin365 avatar cyrus-vance avatar

Stargazers

侠客老王 avatar

Watchers

 avatar

Forkers

cyrus-vance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.