Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)
Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)
目录
一、简单介绍
Unity 中网络通讯知识的整理。
本节介绍,在Unity中用 TcpClient、TcpListener 两个封装类和 NetworkStream 来实现一个简单的网络通讯 demo。
涉及到异步处理,和多线程使用,因为是简单的封装,基本通讯可以满足使用,仅供参考,若有不对,请指出哈,谢谢。
二、实现原理
1、首先通过 IP 和 端口号,开启服务器监听
2、在客户端连接进入之后,会开启一个线程维持与该客户端的通讯,处理该客户端的消息
3、在异步开启一个监听,继续监听客户端接入,如此反复,实现无限(理论上)监听
4、客户端连接服务器,然后开线程,维持与该服务器的通讯,处理服务器的消息
三、简单功能说明图
四、注意实现
1、因为是多线程,在Unity中,要注意有些组件只能在主线程中使用,同时可能要考虑一些资源要加锁处理
2、开启网络,如果服务器没有开启,第一个客户端会开启服务器功能
3、同一个Ip和Port,之后连接进来的对后市客户端
五、效果预览
六、封装后主要几个函数接口
1、连接网络,开启服务器或者客户端连接,可以添加事件
TcpNetConnect(string IP, int port, Action action = null)
2、断开网络,关闭服务器,或关闭客户端连接
TcpNetDisconnect()
3、发送消息
SendMsg(st