public override bool Connect(string ip, int port, uint conv) { try { _connected = false; _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); _socket.Connect(ip, port); _kcp = new KCP(conv, HandleKcpSend); _kcp.SetMtu(KCP.IKCP_MTU_DEF - KCPDatagram.CMD_SIZE); _kcp.SetInterval(1); _kcp.WndSize(512, 512); _kcp.NoDelay(2, 10, 2, 1); _connected = true; _conv = conv; _socket.BeginReceive(_buffer, 0, _maxBufferSize, SocketFlags.None, new AsyncCallback(OnReceive), _socket); } catch (Exception e) { Console.WriteLine("connect failed: " + e); _connected = false; } // clear message queue lock (_queue) { _queue.Clear(); } return(_connected); }
/// <summary> /// 初始化kcp /// </summary> /// <param name="conv"></param> void init_kcp(UInt32 conv) { m_Kcp = new KCP(conv, null); m_Kcp.SetOutput((byte[] buf, int size, object user) => { //UnityEngine.Main.Debug("send:" + size); try { //UnityEngine.Debug.Log("kcp send:" + size); socket.SendTo(buf, 0, size, SocketFlags.None, srvIpEnd); if (index == 2) { index = 1; } } catch (Exception ex) { //Main.Debug("send errror:" + ex.ToString()); NetError(); } }); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); }
private void init_kcp(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { RawSend(buf, size); }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
public FSPSession(uint sid, Action <IPEndPoint, byte[], int> senderAction) { sessionID = sid; sender = senderAction; kcp = new KCP(sid, HandleKcpSend); kcp.NoDelay(1, 10, 2, 1); kcp.WndSize(128, 128); active = true; }
public KCPSession(uint sid, Action <ISession, byte[], int> sender, ISessionListener listener) { m_id = sid; m_sender = sender; m_listener = listener; m_Kcp = new KCP(sid, HandleKcpSend); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); }
public ASynServerKcp(UInt32 conv_, UdpClient socket, IPEndPoint ep, Action <byte[], ASynServerKcp> recHandler) { _socket = socket; _recHandler = recHandler; _remoteEP = new IPEndPoint(new IPAddress(ep.Address.GetAddressBytes()), ep.Port); _kcp = new KCP(conv_, KcpOutput); // fast mode. _kcp.NoDelay(1, 10, 2, 1); _kcp.WndSize(128, 128); }
void initKCP(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { KCPOutput(this, buf, size); }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
/// <summary> /// 初始化Kcp /// </summary> /// <param name="conv">会话</param> private void InitKcp(uint conv) { kcp = new KCP(conv, (buf, size) => { client.Send(buf, size); }); kcp.NoDelay(NoDelay ? 1 : 0, IntervalTimer, Resend, CongestionControl ? 1 : 0); kcp.WndSize(SendWindow, RecvWindow); }
/// <summary> /// 初始化Kcp /// </summary> /// <param name="conv">会话</param> private void InitKcp(uint conv) { kcp = new KCP(conv, (buf, size) => { client.Send(buf, size, remoteEndPoint); }); kcp.NoDelay(1, 1, 2, 1); kcp.WndSize(256, 256); }
/// <summary> /// 初始化Kcp /// </summary> /// <param name="conv">会话</param> private void InitKcp(uint conv) { kcp = new KCP(conv, (buf, size) => { server.SendTo(buf, 0, size, SocketFlags.None, remote); }); kcp.NoDelay(1, 10, 2, 1); kcp.WndSize(128, 128); }
public KCPSession(uint sid, Action <ISession, byte[], int> sender, ISessionListener listener) { sessionId = sid; senderAction = sender; this.listener = listener; kcp = new KCP(sid, HandleKcpSend); kcp.NoDelay(1, 10, 2, 1); kcp.WndSize(128, 128); }
void init_kcp(UInt32 conv) { m_Kcp = new KCP(conv, null); m_Kcp.SetOutput(SendAction); // fast mode. m_Kcp.NoDelay(1, 20, 2, 1); m_Kcp.WndSize(80, 80); m_Kcp.SetMinRTO(10); m_Kcp.SetFastResend(1); }
//------------------------------------------------------------ #region 构造相关 public void Init(uint sid) { Debuger.Log("sid:{0}", sid); m_sid = sid; m_TempSendData.sid = sid; m_TempSendData.msgs.Add(new FSPMessage()); m_Kcp = new KCP(m_sid, HandleKcpSend); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); }
void init_kcp(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { mUdpClient.Send(buf, size); }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(256, 256); }
void init_kcp(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { mUdpClient.Send(buf, size); }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
public FSPSession(uint sid, Action <IPEndPoint, byte[], int> sender) { Debuger.Log(); m_id = sid; m_sender = sender; m_Kcp = new KCP(sid, HandleKcpSend); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); m_active = true; }
void init_kcp(UInt32 conv) { conv = 1; mKcp = new KCP(conv, (byte[] buf, int size) => { base.Send(buf, 0, buf.Length); }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
void init_kcp(UInt32 conv) { m_Kcp = new KCP(conv, null); m_Kcp.SetOutput((byte[] buf, int size, object user) => { m_KCPServer.Send(this, buf, size); }); // fast mode. m_Kcp.NoDelay(1, 20, 2, 1); m_Kcp.WndSize(128, 128); }
public void Init(uint sessionid) { sessionID = sessionid; sendBufferTemp = new byte[4096]; recvBufferTemp = new byte[4096]; tempSendData = new FSPDataCToS(); recvBuffQueue = new SwitchQueue <byte[]>(); tempSendData.sessionID = sessionid; tempSendData.msg = new FSPMessage(); kcp = new KCP(sessionid, HandleKcpSend); kcp.NoDelay(1, 10, 2, 1); kcp.WndSize(128, 128); }
//====================================================================== //连接与断开连接相关 //====================================================================== public void Active(Socket socket, IPEndPoint remoteEndPoint) { RemoteEndPoint = (IPEndPoint)remoteEndPoint; if (Interlocked.CompareExchange(ref this.m_actived, 1, 0) == 0) { m_socket = socket; LocalEndPoint = (IPEndPoint)socket.LocalEndPoint; m_Kcp = new KCP(Id, HandleKcpSend); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); } }
private KCPNet() : base() { mNetTag = "KCP"; kcpObject = new KCP(1, HandleKcpSend); kcpObject.NoDelay(1, 10, 2, 1); kcpObject.WndSize(128, 128); sendCallBack = SendAsyncCallback; for (int i = 0; i < 60; i++) { cacheBytesQue.Enqueue(new CacheByteObject() { bytes = new byte[cacheByteLen] }); } }
void init_kcp(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { try { mUdpClient.Send(buf, size); }catch(Exception e) { Debug.LogError(e); } }); mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
public static bool Connect(int port, int playerId) { if (Connected) { return(false); } Client = new UdpClient(TcpClientProxy.server.Address.ToString(), port); Kcp = new KCP((uint)playerId, SendWrap); Kcp.NoDelay(1, 10, 2, 1); Kcp.WndSize(128, 128); Receive(); UpdateTime = 0; Connected = true; return(true); }
public void Initialize(object user, KCPSetting setting) { _kcp = new KCP(setting.conv, user); _kcp.SetOutput(OutputKCP); // fast mode _kcp.NoDelay(setting.nodelay, setting.interval, setting.resend, setting.nc); _kcp.WndSize(setting.sndwnd, setting.rcvwnd); _recvTimeoutSec = setting.timeoutSec; kcpRcvBuf = new byte[(KCP.IKCP_MTU_DEF + KCP.IKCP_OVERHEAD) * 3]; }
private void createSocket(int conv, string host, int port) { _remoteEP = new IPEndPoint(IPAddress.Parse(host), port); _listenEP = new IPEndPoint(IPAddress.Any, port); // 主要一定要设置port为0,不然无法接收到服务器的消息 _socket = new UdpClient(0); _socket.Connect(_remoteEP); _kcp = new KCP((uint)conv, (byte[] buf, int size) => { //Log4U.LogDebug("ASynKcpUdpClientSocket:createSocket Message send data=", Encoding.ASCII.GetString(buf, 0, size)); _socket.Send(buf, size); }); // fast mode. _kcp.NoDelay(1, 10, 2, 1); _kcp.WndSize(128, 128); _socket.BeginReceive(ReceiveAsyn, this); }
public void Connect(string ip, int port) { Debuger.Log("连接服务端 IP {0} Port {1} ", ip, port); IP = ip; remoteIp = ip; remotePort = port; remotEndPoint = IPUtility.GetHostEndPoint(ip, port); currentSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); currentSocket.Bind(new IPEndPoint(IPAddress.Any, Port)); kcp = new KCP(0, HandleKcpSend); kcp.NoDelay(1, 10, 2, 1); kcp.WndSize(128, 128); Connected = true; threadRecv = new Thread(ThreadRecv) { IsBackground = true }; threadRecv.Start(); }
public KcpChannel(int port, Action <byte[]> reveiveHandler) { _recEndPoint = new IPEndPoint(IPAddress.Any, 0); _reveiveHandler = reveiveHandler; _udpClient = new UdpClient(new IPEndPoint(IPAddress.Any, port)); _kcp = new KCP((UInt32) new Random((int)DateTime.Now.Ticks).Next(1, Int32.MaxValue), UdpSendData); //kcp fast mode. _kcp.NoDelay(1, 10, 2, 1); _kcp.WndSize(128, 128); _receiveMeesages = new Queue <byte[]>(); _udpClient.BeginReceive(UdpReceiveMessage, this); new Task(Update).Start(); }
void init_kcp(UInt32 conv) { mKcp = new KCP(conv, (byte[] buf, int size) => { try { mUdpClient.Send(buf, size); } catch (Exception e) { // itfantasy added if (this.errHandler != null) { this.errHandler.Invoke(e.Message); } } }); // fast mode. mKcp.NoDelay(1, 10, 2, 1); mKcp.WndSize(128, 128); }
public void Connect(string ip, int port) { Debuger.Log("ip:{0}, port:{1}", ip, port); m_ip = ip; m_port = port; m_RemoteEndPoint = IPUtils.GetHostEndPoint(ip, port); m_SystemSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); m_SystemSocket.Bind(new IPEndPoint(IPAddress.Any, bindPort)); m_Kcp = new KCP(0, HandleKcpSend); m_Kcp.NoDelay(1, 10, 2, 1); m_Kcp.WndSize(128, 128); Connected = true; m_ThreadRecv = new Thread(Thread_Recv) { IsBackground = true }; m_ThreadRecv.Start(); }
public KcpChannel(string ip, int port, Action <byte[]> reveiveHandler) { _allEndPoint = new IPEndPoint(IPAddress.Parse("255.255.255.255"), port); _recEndPoint = new IPEndPoint(IPAddress.Any, 0); _reveiveHandler = reveiveHandler; _udpClient = new UdpClient(new IPEndPoint(IPAddress.Parse(ip), port)); _kcp = new KCP((UInt32) new Random((int)DateTime.Now.Ticks).Next(1, Int32.MaxValue), UdpSendData); //kcp fast mode. _kcp.NoDelay(1, 10, 2, 1); _kcp.WndSize(128, 128); _receiveMeesages = new Queue <byte[]>(); Thread revThread = new Thread(ReceiveMessage); revThread.Start(); Thread updataThread = new Thread(Update); updataThread.Start(); }
void Start() { kcpObject = new KCP(1, HandleKcpSend); kcpObject.NoDelay(1, 10, 2, 1); kcpObject.WndSize(128, 128); IPAddress tip = IPAddress.Parse("127.0.0.1"); //var mTargetPoint = new IPEndPoint(tip, 200236); testServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); mRecPoint = new IPEndPoint(IPAddress.Any, mLocalPort); IPEndPoint tMypoint = new IPEndPoint(IPAddress.Any, mLocalPort); testServer.Bind(tMypoint); taskStart = true; recTask = Task.Run(RecThread); Application.runInBackground = true; tetstdata.AddInt(3); Debug.Log("测试KCP服务器启动"); }