Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)

Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)
www.zeeklog.com  - Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)

Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)

目录


一、简单介绍

Unity 中网络通讯知识的整理。

本节介绍,在Unity中用 TcpClient、TcpListener 两个封装类和 NetworkStream 来实现一个简单的网络通讯 demo。

涉及到异步处理,和多线程使用,因为是简单的封装,基本通讯可以满足使用,仅供参考,若有不对,请指出哈,谢谢。

二、实现原理

1、首先通过 IP 和 端口号,开启服务器监听

2、在客户端连接进入之后,会开启一个线程维持与该客户端的通讯,处理该客户端的消息

3、在异步开启一个监听,继续监听客户端接入,如此反复,实现无限(理论上)监听

4、客户端连接服务器,然后开线程,维持与该服务器的通讯,处理服务器的消息

三、简单功能说明图

www.zeeklog.com  - Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)

四、注意实现

1、因为是多线程,在Unity中,要注意有些组件只能在主线程中使用,同时可能要考虑一些资源要加锁处理

2、开启网络,如果服务器没有开启,第一个客户端会开启服务器功能

3、同一个Ip和Port,之后连接进来的对后市客户端

五、效果预览

www.zeeklog.com  - Unity 网络 之 TcpListener 实现简单的网络服务器和客户端通讯功能封装(可监听多个客户端)

六、封装后主要几个函数接口

1、连接网络,开启服务器或者客户端连接,可以添加事件

TcpNetConnect(string IP, int port, Action action = null)

2、断开网络,关闭服务器,或关闭客户端连接

TcpNetDisconnect()

3、发送消息

SendMsg(st