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; } } }
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); }