作者在闲暇时间做了一个比较粗糙的类库,此类库特为解决网络基础差的同学。废话不多说直接上教程。
在使用之前先新建控制台应用程序,此操作省略。
然后下载解压DLL,并添加引用:进入SuperEnging-Dll文件夹,就能看到两个类库,如果不使用Unity的话可以不添加UnityFrame.dll
接下来我们在服务端引入命名空间 using SLIB;
并且创建如下代码:
//客户端类,实现自定义功能
public class Clients : Client
{
public string name;
}
class Program
{
static void Main(string[] args)
{
//创建网络类
NetWork<Clients> net = new NetWork<Clients>();
//开启服务器端,自动获取地址
net.ServerStart(net.getLocalIP(), 1231, SocketType.Stream, ProtocolType.Tcp);
//添加消息事件,用来接收客户端消息
net.AddMessageEvent(MessageEvent);
//添加客户端连接事件,客户端连接时调用
net.AddClientConnect(ClientConnect);
//等待用户操作
Console.ReadKey();
}
//客户端连接事件
private static void ClientConnect(Clients client)
{
//创建一段消息,并且设置其协议名称为打招呼
MessageInformation message = new MessageInformation("打招呼");
//发送一段消息
message.AddMessage("客户端你好!");
//直接发送给客户端
client.Send(message);
}
//消息事件
private static void MessageEvent(Clients client, MessageInformation message)
{
//读取消息列表
object[] mesg = message.GetMessageList();
for(int i=0;i< mesg.Length; i++)
{
Console.WriteLine("接收到消息" + mesg[i]);
}
}
}
创建完服务端的代码,接下来使用Unity创建一个Unity应用,用来当做客户端。创建步骤省略。
在Unity中创建脚本NetWorks,并挂载到游戏物体。在脚本中创建如下代码:
using SLIB;
using System.Net.Sockets;
using UnityEngine;
public class NetWorks : MonoBehaviour
{
//客户端之所以需要Client是初始化必须的,无需理会
private NetWork<Client> net = new NetWork<Client>();
void Start()
{
net.ServerConnect(net.getLocalIP(), 1231, SocketType.Stream, ProtocolType.Tcp);
//将多线程关闭,在Unity中无法使用多线程
net.ThreadProtocol = false;
//开启消息列表,在Unity中接收消息需要通过Update处理
net.StartMessagesLiset = true;
//添加消息协议,接收到打招呼协议时调用以下方法
net.AddMessageProtocols("打招呼", HelloEvent);
}
private void HelloEvent( MessageInformation message)
{
//我们已经知道客户端发送的第一条消息类型为String所以在客户端无需使用For循环
Debug.Log("接收到协议:" + message.name);
//先获得消息列表
object[] objs = message.GetMessageList();
//使用强制转换,将第一条消息转换为string
string str = (string)objs[0];
Debug.Log("接收到服务端发来的消息:" + str);
//返回一条消息给服务端,服务端也可以使用协议,此处不使用。
MessageInformation m = new MessageInformation();
m.AddMessage("服务端你好!");
//直接发送给服务端
net.Send(m);
}
void Update()
{
//处理消息,需要打开StartMessagesLiset
net.UpdateMessageProtocols(5);
}
}
这些就可以启动服务器与客户端啦!以下是启动效果。
欢迎使用下载,以后会有更多教程噢!
API链接:查看
DLL下载链接:下载
来源:CSDN
作者:豪气的风云
链接:https://blog.csdn.net/u010511043/article/details/103730038