# 跨平台的.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");
}
}
}
```