Log不显示在控制台:
1.在AssemblyInfor.cs中末尾添加“[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]”
2.log4net.config,复制到输出目录:始终复制。
Log不显示在控制台:
1.在AssemblyInfor.cs中末尾添加“[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]”
2.log4net.config,复制到输出目录:始终复制。
1.在ServerBase下安装log4net,要求不可以是类库。
2.导入log4net.config。
粘包.与分包
是一种优化机制.
粘包,调用的数据非常小,有非常多的时候,会把数据进行结合
分包,数据量很大的时候,会分开发送
使用异步加载
县级那一个StartServerSync//同步
StartServerAsync//异步
byte buffer
传递数组,偏移(0-size),socketFlags.none,object State(定位一个方法)
ReceiverCallBack(IAsyncResult ar )//IasyncResule.参数
Socket.Connect(new ipendpoint(IP,端口) )//简历链接
接受btye
Socket(IP类型,数据类型,传递协议)
AddressFamily.
socketype.stream.数据流
投递, //有可能丢失
UDB的话可以用
Protocol.传递协议
要设置绑定协议.
IPAdress .Parse() 会将IP解析为字符串
服务器,客户端
Socket.Bind()//绑定IP和端口号.
1 同步处理,异步处理
TCP三次握手.稳定.发送消息会等待响应,未响应的话会等待,时间过了会再次发送;
比例:张三:李四在吗?李四:在!
UDP就是快,但是不稳定
张三:李四你快递!我走了.
TCP;ip就是主机电脑.
IP的主要作用就是在复杂的网络环境中奖数据包发给最终的目标地址;
端口号:指应用程序,范围为49152-65535;
因为是软件通信.
逻辑端口,25诶Smtp.80给Http. 135给RPC(远程过程调用)服务等
25/80/135 这些端口尽量不要使用
注册端口到1025到49151
Socket/Tcp开发服务器;
最底层服务器搭建/photonServer也是用socket
客户端与服务端的对战
Tcp基础知识
Socket;
UI框架;
可以吧PEsocket自己全部拷贝到unity项目里
也可以生成dll引用
移除后新建项目,Server NF4.6.1
ServerStart 方法
定义协议工程,
Protocol
NetMsg
是一个类库,可以确定后再更改 unity3.5
using PENet
要序列化
serializable 序列化
PEsocket,
protocol 定义如何传输的方式,具体的网络消息如何使用
srIp为当前IP地址
srvPort 为端口
先启用服务端,,再启用客户端后会自动回应
protobuf-net打包编译好的下载地址:
官方源码需要.net4.5及以上,c#不支持protobuf2版本。
这里使用protobuf net
cs类可以转为xml,需要加[System.Serializable]标签
cs类可以转为proto,需要加[ProtoContract]标签
比如MonsterData.cs
从Nuget下载protobuf-net3.6.1,下载位于“C:\Users\Admin\.nuget\packages\google.protobuf\3.6.1\lib\net45”
在player预制件上挂audioListener,防止场景过大,但挂audiolistener的对象不移动所导致的声音偏移
外键必须引用其他表的主键或者unique key