public Network(UdpClientSession udpClientSession, KcpSession kcpSession) { this.udpClientSession = udpClientSession; this.kcpSession = kcpSession; EventSystem.RegisterEvent(EventID.kcp_init_success, KCPInitSuccess); EventSystem.RegisterEvent(EventID.get_conv, OnGetConv); EventSystem.RegisterEvent(EventID.udp_init_success, UDPInitSuccess); EventSystem.RegisterEvent(EventID.udpbuffer_to_kcp, UDPBufferToKcp); EventSystem.RegisterEvent(EventID.send_kcp_buffer, SendKCPBuffer); EventSystem.RegisterEvent(EventID.receive_kcp_buffer, ReceiveKcpBuffer); EventSystem.RegisterEvent(EventID.try_get_conv, TryGetConv); EventSystem.RegisterEvent(EventID.network_disconnect, NetworkDisconnect); EventSystem.RegisterEvent(EventID.connect_udp, ConnectUDP); EventSystem.DispatchEvent(EventID.connect_udp); }
static void Main(string[] args) { Debug.Log("请输入服务器的IP地址 缺省值为127.0.0.1"); string ip = Console.ReadLine(); if (string.IsNullOrEmpty(ip.Trim())) { ip = "127.0.0.1"; } Debug.Log("请输入 UDP 服务监听的端口 缺省值为12800"); string udp_port = Console.ReadLine(); ushort udpPort = 12800; if (ushort.TryParse(udp_port, out var result_udpPort)) { udpPort = result_udpPort; } UdpClientSession clientSession = new UdpClientSession(ip, udpPort); KcpSession kcpsession = new KcpSession(); Network network = new Network(clientSession, kcpsession); int heartbeat = 0; while (true) { if (kcpsession.GetConv > 0) { heartbeat++; if (heartbeat > 100) { heartbeat = 0; byte[] buffer = BitConverter.GetBytes(kcpsession.GetConv); EventSystem.DispatchEvent(EventID.send_kcp_buffer, buffer); } } Thread.Sleep(10); network.Update(); GC.Collect(); } }