private void InitKCP(UDPSetting setting) { _kcpObject = new KCPStateObject(); _kcpObject.Initialize(this, setting.kcp); _kcpObject.remote = remoterPoint; _kcpObject.sendHandle = OnKCPSend; _kcpObject.receiveHandle = OnKCPReceive; }
public void Connect(UDPSetting setting) { if (null == setting) { NetDebug.Error("[UDPConnection] the setting can not be null."); return; } this.setting = setting; Initialize(this.setting.ioNum); remoterPoint = NetUtility.GetIPEndPoint(setting.host, setting.port); socket = new Socket(remoterPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp); socket.Connect(remoterPoint); InitKCP(setting); }
public static void Run() { UDPSetting setting = new UDPSetting("127.0.0.1", 50666, KCPSetting.Defaut); server = new UDPServer(); server.Listen(setting); server.onReceiveCallback = (message) => { byte[] rev = message.GetRawMessage(); string s = System.Text.Encoding.Default.GetString(rev); Util.Debug.ServerLog("REV {0}:{1}", message.remote, s); server.Send(message.remote, rev); }; int counter = 0; client = new KCPConnection(); client.Connect(setting); client.Start(); client.onReceiveCallback = (message) => { byte[] rev = message.GetRawMessage(); string s = System.Text.Encoding.Default.GetString(rev); Util.Debug.ClientLog("REV {0}:{1}", message.remote, s); Thread.Sleep(500); counter++; byte[] sd = System.Text.Encoding.Default.GetBytes(counter.ToString()); client.Send(sd); }; byte[] data = System.Text.Encoding.Default.GetBytes(counter.ToString()); client.Send(data); Thread runThread = new Thread(RunThread); runThread.Start(); }
public void Listen(UDPSetting setting) { if (null == setting) { NetDebug.Error("[UDPConnection] the setting can not be null."); return; } this.setting = setting; Initialize(this.setting.ioNum); localEndPoint = NetUtility.GetIPEndPoint(setting.host, setting.port); socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.ReuseAddress, true); socket.Bind(localEndPoint); kcpHandle = new KCPServerHandle(setting); kcpHandle.onSendHandle = OnSend; kcpHandle.onReceiveHandle = OnReceive; Start(); }
public KCPServerHandle(UDPSetting setting) { this.setting = setting; }