123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- //using System;
- //namespace IFramework.Net.KCP
- //{
- // public class KcpClient
- // {
- // private Kcp _kcp = null;
- // private BufferQueue _buffer;
- // private UInt32 _time = 0;
- // public IKcpSocket socket;
- // private ISessionListener _listen;
- // public bool writeDelay;
- // public bool ackNoDelay;
- // public KcpClient(IKcpSocket client, ISessionListener listen)
- // {
- // _buffer = BufferQueue.Allocate(1024 * 32);
- // this.socket = client;
- // this._listen = listen;
- // client.onMessage += Socket_onMessage;
- // }
- // private void Socket_onMessage(byte[] buffer, int offset, int length)
- // {
- // var inputN = _kcp.Input(buffer, offset, length, true, ackNoDelay);
- // if (inputN < 0) return;
- // _buffer.Clear();
- // while (true)
- // {
- // var size = _kcp.PeekSize();
- // if (size <= 0) break;
- // _buffer.EnsureWritableBytes(size);
- // var n = _kcp.Recv(_buffer.buffer, _buffer.writer, size);
- // if (n > 0) _buffer.writer += n;
- // }
- // // 有数据待接收
- // if (_buffer.canRead > 0)
- // {
-
- // _listen.OnMessage(socket,_buffer.buffer, _buffer.reader, _buffer.canRead);
- // // 读完重置读写指针
- // if (_buffer.reader == _buffer.writer)
- // {
- // _buffer.Clear();
- // }
- // }
- // }
- // public void Connect(string host, int port)
- // {
- // _kcp = new Kcp((uint)(new Random().Next(1, Int32.MaxValue)), socket);
- // _kcp.NoDelay(0, 30, 2, true);
- // _kcp.stream = true;
- // _buffer.Clear();
- // socket.Connect(host,port);
- // }
- // public int Send(byte[] data, int index, int length)
- // {
- // var waitsnd = _kcp.waitToSend;
- // if (waitsnd < _kcp.sendWindow && waitsnd < _kcp.RmtWnd)
- // {
- // var sendBytes = 0;
- // do
- // {
- // var n = Math.Min((int)_kcp.Mss, length - sendBytes);
- // _kcp.Send(data, index + sendBytes, n);
- // sendBytes += n;
- // } while (sendBytes < length);
- // waitsnd = _kcp.waitToSend;
- // if (waitsnd >= _kcp.sendWindow || waitsnd >= _kcp.RmtWnd || !writeDelay)
- // {
- // _kcp.Flush(false);
- // }
- // return length;
- // }
- // return 0;
- // }
- // public void Close()
- // {
- // _buffer.Clear();
- // socket.Close();
- // }
- // public void Update()
- // {
- // if (0 == _time || _kcp.time >= _time)
- // {
- // _kcp.Update();
- // _time = _kcp.Check();
- // }
- // }
- // }
- //}
|