Example #1
0
        static void TestSocket()
        {
            UInt32 conv       = 0x12345678;
            var    counter    = 1;
            var    originText = "a quick brown fox jumps over the lazy dog";
            var    rawbytes   = Encoding.UTF8.GetBytes(String.Format("{0} {1}", originText, counter));

            KCPSocket sock = new KCPSocket();

            sock.SetHandler((byte[] data, int size) =>
            {
                Console.WriteLine(Encoding.UTF8.GetString(data, 0, size));

                Thread.Sleep(500);
                rawbytes = Encoding.UTF8.GetBytes(String.Format("{0} {1}", originText, ++counter));
                sock.Send(rawbytes, 0, rawbytes.Length);
            });

            sock.Connect(conv, "127.0.0.1", 9527);
            sock.StartRead();
            sock.Send(rawbytes, 0, rawbytes.Length);

            while (true)
            {
                Thread.Sleep(100);
                try
                {
                    sock.Update(Utils.iclock());
                }
                catch (Exception ex)
                {
                    sock.Close();
                    Console.WriteLine("Exception: {0}", ex);
                    break;
                }
            }
        }
Example #2
0
        public bool Connect(string host, int port)
        {
            if (m_Socket != null)
            {
                Debuger.LogError(LOG_TAG_MAIN, "Connect() 无法建立连接,需要先关闭上一次连接!");
                return(false);
            }

            Debuger.Log(LOG_TAG_MAIN, "Connect() 尝试建立基础连接, host = {0}, port = {1}", host, port);

            try
            {
                //获取Host对应的IPEndPoint
                Debuger.Log(LOG_TAG_MAIN, "Connect() 获取Host对应的IPEndPoint");
                m_HostEndPoint = IPUtils.GetHostEndPoint(host, port);
                if (m_HostEndPoint == null)
                {
                    Debuger.LogError(LOG_TAG_MAIN, "Connect() 无法将Host解析为IP!");
                    Close();
                    return(false);
                }
                Debuger.Log(LOG_TAG_MAIN, "Connect() HostEndPoint = {0}", m_HostEndPoint.ToString());

                // 创建socket
                m_Socket = new KCPSocket(0, 1);
                m_Socket.Connect(m_HostEndPoint);
                m_Socket.AddReceiveListener(m_HostEndPoint, OnReceive);
            }
            catch (System.Exception e)
            {
                Debuger.LogError(LOG_TAG_MAIN, "Connect() " + e.Message + e.StackTrace);
                Close();
                return(false);
            }

            return(true);
        }