static void Main(string[] args) { NetworkDebuger.IsUnity = false; NetworkDebuger.EnableLog = true; NetworkDebuger.EnableSave = true; NetworkDebuger.DeleteFiles(); NetworkDebuger.Log(nameof(NetworkDebuger) + " Init"); // SqlManager.Init(); ServerDataManager.Init(); new AsyncIOCPServer(IP, portTCP, 30000); UdpServer.Instance.Init(IP, portUDP); while (true) { string msg = Console.ReadLine(); if (msg.Contains("quit"))//quit-1-1 { string[] sp = msg.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries); int roomID = int.Parse(sp[1]); int unique = int.Parse(sp[2]); bool isQuit = ServerDataManager.instance.allRoom.RoomList[roomID].Quit(unique); Console.WriteLine("踢房间->" + roomID + " 站位->" + unique + " 结果->" + isQuit); } if (msg == "test") { } } }
public void Start() { NetworkDebuger.IsUnity = true; NetworkDebuger.EnableLog = true; NetworkDebuger.EnableSave = true; NetworkDebuger.Log("Awake()"); }
public void Init() { NetworkDebuger.IsUnity = false; NetworkDebuger.EnableLog = true; NetworkDebuger.EnableSave = true; NetworkDebuger.Log(nameof(NetworkDebuger) + " Init"); //开启非可靠传输udp监听客户端连接 IPEndPoint localIpep = new IPEndPoint(IPAddress.Parse(IP), PORT); //myClient = new UdpClient(localIpep); //thrRecv = new Thread(ConnectReceive); //thrRecv.Start(myClient); NetworkDebuger.Log(GetType().Name + " Init"); //kcpSocket //k_Socket = new KCPSocket(PORT, 1, AddressFamily.InterNetwork); KCPPlayer p1 = new KCPPlayer(); //p1.Init(localIpep, new IPEndPoint(IPAddress.Parse("192.168.1.111"), 12345)); p1.Init(localIpep, new IPEndPoint(IPAddress.Any, 0)); Thread th = new Thread(SetUpdate); th.IsBackground = true; th.Start(p1); string writeIN = Console.ReadLine(); Console.WriteLine("???????"); }
public void Init(IPEndPoint localPoint, IPEndPoint remotePoint) { LOG_TAG = "KCPPlayer[" + remotePoint + "]"; m_RemotePoint = remotePoint; m_Socket = new KCPSocket(localPoint.Port, 1, AddressFamily.InterNetwork); //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny); m_Socket.AddReceiveListener(remotePoint, OnReceive); NetworkDebuger.Log(LOG_TAG, " 连接."); }
//public void Init(string name, IPAddress ipa, int localPort, int remotePort) //{ // m_Name = name; // LOG_TAG = "KCPPlayer[" + m_Name + "]"; // m_RemotePoint = new IPEndPoint(ipa, remotePort); // m_Socket = new KCPSocket(localPort, 1, AddressFamily.InterNetwork); // //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny); // m_Socket.AddReceiveListener(m_RemotePoint, OnReceive); // NetworkDebuger.Log("Init()", "name:{0}, localPort:{1}, remotePort:{2}", name, localPort, remotePort); //} public void Init(IPEndPoint localPoint, IPEndPoint remotePoint) { m_Name = "Player"; LOG_TAG = "KCPPlayer[" + m_Name + "]"; m_RemotePoint = remotePoint; m_Socket = new KCPSocket(localPoint.Port, 1, AddressFamily.InterNetwork); //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny); m_Socket.AddReceiveListener(m_RemotePoint, OnReceive); NetworkDebuger.Log("Init()", "name:{0}, localPort:{1}, remotePort:{2}", m_Name, localPoint, remotePoint); }
public void Init(string name, int localPort, int remotePort) { m_Name = name; LOG_TAG = "KCPPlayer[" + m_Name + "]"; IPAddress ipa = IPAddress.Parse(UnityEngine.Network.player.ipAddress); m_RemotePoint = new IPEndPoint(ipa, remotePort); m_Socket = new KCPSocket(localPort, 1, AddressFamily.InterNetwork); m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny); m_Socket.AddReceiveListener(m_RemotePoint, OnReceive); NetworkDebuger.Log("Init() name:{0}, localPort:{1}, remotePort:{2}", name, localPort, remotePort); }
private IEnumerator Start() { yield return(new WaitForSecondsRealtime(3f)); NetworkDebuger.EnableLog = true; NetworkDebuger.EnableSave = true; NetworkDebuger.Log("Awake()"); p1 = new KCPPlayer(); p1.Init("Player1", 12345, 12346); p2 = new KCPPlayer(); p2.Init("Player2", 12346, 12345); m_initKcp = true; // StartCoroutine(sendMsgLoop()); }
private void ConnectReceive(object obj) { UdpClient myClient = obj as UdpClient; IPEndPoint remoteIpep = new IPEndPoint(IPAddress.Any, 0); while (true) { try { byte[] bytRecv = myClient.Receive(ref remoteIpep); ThreadPool.QueueUserWorkItem(DealConnect, new object[] { remoteIpep, bytRecv }); } catch (Exception ex) { NetworkDebuger.LogException(ex.Message); } } }
private void ConnectReceive(object obj) { UdpClient myClient = obj as UdpClient; IPEndPoint remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000); while (true) { try { byte[] bytRecv = myClient.Receive(ref remoteIpep); string info = Encoding.UTF8.GetString(bytRecv); if (info.Equals(ConnectInfo)) { p2 = new KCPPlayer(); //p2.Init(k_Socket, new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000)); m_initKcp = true; } } catch (Exception ex) { NetworkDebuger.LogException(ex.Message); } } }
private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint) { string str = Encoding.UTF8.GetString(buffer, 0, size); NetworkDebuger.Log("OnReceive() " + remotePoint + ":" + str); }
public void Log4Debug(string msg) { NetworkDebuger.Log(this.GetType().Name + ":" + msg); }
/// <summary> /// byte[] 转换为 MessageXieYi /// </summary> /// <param name="buffer">字节数组缓冲器。</param> /// <returns></returns> public static MessageXieYi FromBytes(byte[] buffer) { int bufferLength = buffer.Length; int limet = 2; if (bufferLength < XieYiLength + limet) { return(null); } MessageXieYi messageXieYi = new MessageXieYi(); using (MemoryStream memoryStream = new MemoryStream(buffer)) //将字节数组填充至内存流 { BinaryReader binaryReader = new BinaryReader(memoryStream); //以二进制读取器读取该流内容 byte start = binaryReader.ReadByte(); //把开头的标识符去掉 if (start != markStart) { string strError = ""; for (int i = 0; i < buffer.Length; i++) { strError += "_" + buffer[i]; } string info = "开头不是标识符:" + strError; NetworkDebuger.LogException(info); return(null); } messageXieYi.xieYiFirstFlag = binaryReader.ReadByte(); //读取协议一级标志,读1个字节 messageXieYi.xieYiSecondFlag = binaryReader.ReadByte(); //读取协议二级标志,读1个字节 messageXieYi.messageContentLength = binaryReader.ReadInt32(); //读取实际消息长度,读4个字节 //如果【进来的Bytes长度】大于【一个完整的MessageXieYi长度】 if ((bufferLength - 6) > messageXieYi.messageContentLength) { messageXieYi.messageContent = binaryReader.ReadBytes(messageXieYi.messageContentLength); //读取实际消息内容,从第7个字节开始读 //messageXieYi.duoYvBytes = binaryReader.ReadBytes(bufferLength - 6 - messageXieYi.messageContentLength); } //如果【进来的Bytes长度】等于【一个完整的MessageXieYi长度】 if ((bufferLength - 6) == messageXieYi.messageContentLength) { messageXieYi.messageContent = binaryReader.ReadBytes(messageXieYi.messageContentLength); //读取实际消息内容,从第7个字节开始读 } //如果【进来的Bytes长度】小于【一个完整的MessageXieYi长度】 if ((bufferLength - 6) < messageXieYi.messageContentLength) { string info = "数据接收不齐:" + (bufferLength - 6) + "/" + messageXieYi.messageContentLength; NetworkDebuger.LogException(info); return(null); } byte end = binaryReader.ReadByte(); if (end != markEnd) { string info = "结尾:" + end + "消息长度:" + messageXieYi.messageContentLength; NetworkDebuger.LogException(info); return(null); } binaryReader.Close(); //关闭二进制读取器,是否资源 } return(messageXieYi); //返回消息协议对象 }
//private static void Test() //{ // string sql = SqlManager.SelectWhere(TableName.register); // List<Register> re = SqlManager.instance.DataRead(sql, new Func<SqlDataReader, List<Register>>(Register.BackDatas)); //} public static void Log4Debug(string msg) { NetworkDebuger.Log(":" + msg); }