# 跨平台的.net core socket库 **Repository Path**: idsyn/net_core_socket ## Basic Information - **Project Name**: 跨平台的.net core socket库 - **Description**: 基于.net core 3.1写的跨平台socket库通过了windows和mac osx的测试。 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2020-09-29 - **Last Updated**: 2022-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 跨平台的.net core socket库 #### 介绍 基于.net core 3.1写的跨平台socket库 通过了windows和mac osx的测试。 #### 软件架构 .net core 3.1 #### 安装教程 .net core项目中添加现有文件并引用即可。 #### 使用说明 ** ### 服务端 ** 1.添加CoreSocketServer下的ServerControl.cs并using 2.同时using System.Net.Sockets; 然后在你的程序代码中,加入 ``` ServerControl Server = new ServerControl();//初始化Socket Server.Start("0.0.0.0", 1231, 10000); //启动侦听连接(绑定IP,端口,最大连接数量) ``` 来启动服务器。 为了处理用户的消息,你还需要绑定ServerControl下的通知,在上方代码的下方加入下来代码,然后新建一个接受的函数来处理收到的消息。 ``` Server.Rev += Revmsg; //绑定通知,此处的Revmsg为你需要新建的函数名。 ``` 新建对应的Revmsg的函数来处理消息 ``` /// /// 接收客户消息 /// /// 客户源 /// 消息 public static void Revmsg(Socket aaa,string bbb) { //收到来自AAA,发送的BBB信息 if (bbb == "areyouok") //如果收到的消息为"areyouok"时,自动回复一个"im ok" { Senduser(aaa, "im'ok"); } } /// /// 发用户消息给用户 /// /// 用户 /// 消息 public static void Senduser(Socket aaa, string bbb) { aaa.Send(Encoding.UTF8.GetBytes(bbb)); return; } ``` ** ### 客户端 ** 添加CoreSocket下的ClientControl.cs并using 然后在你的程序代码中,加入下列代码来初始化客户端。 ``` ClientControl Client = new ClientControl();//初始化Socket Client.Connect("127.0.0.1", 1231);//连接到服务器 (服务器IP,端口) ``` 然后使用 Client.Send("消息内容")来发送消息。 例如: ``` string msg ="hello"; Client.Send(msg);//发送消息 ``` 为了使用方便,你也可以在程序载入完毕前,初始化一个全局的Socket,来方便所有函数和方法对它进行调用。 ``` public static ClientControl Client = new ClientControl();//静态初始化Socket ``` 同样在ClientControl初始化完毕后,需要绑定Client的消息通知。 在初始化代码的下方加入下列代码,然后新建一个revmsg的函数来处理收到消息的逻辑: ``` Client.Rev += revmsg; //加入消息通知 ``` ``` /// /// 收到服务器消息 /// /// 收到的消息 public static void revmsg(string msg) { Console.WriteLine("收到服务器消息:" + msg); if (msg == "hello") { Client.Send("nice to me too"); //如果收到服务器问好,则发送nice to me too回去 } } ``` 完整的代码示例如下: ``` class Program { public static ClientControl Client = new ClientControl();//静态初始化Socket static void Main(string[] args) { Client.Connect("103.229.215.156", 1231);//连接到服务器 Client.Rev += revmsg; //加入消息通知 Console.WriteLine("输入消息后,按下回车发送消息,输入exit退出!");//提示信息 string msg = Console.ReadLine();//输入 while (msg != "exit")//判断是否退出 { Client.Send(msg);//发送消息 msg = Console.ReadLine();//输入消息 } } /// /// 收到服务器消息 /// /// 收到的消息 public static void revmsg(string msg) { Console.WriteLine("收到服务器消息:" + msg); if (msg == "hello") { Client.Send("nice to me too"); } } } ```