public int Send(ByteBuffer buffer, EndPoint target) { if (!Socket.Poll(0, SelectMode.SelectWrite)) return 0; var data = new byte[buffer.Remaining]; buffer.Get(data); return Socket.SendTo(data, target); }
public EndPoint Receive(ByteBuffer buffer) { if (!Socket.Poll(0, SelectMode.SelectRead)) return null; var ep = Socket.LocalEndPoint; var data = new byte[buffer.Remaining]; var length = Socket.ReceiveFrom(data, ref ep); buffer.Put(data, 0, length); return ep; }
public void Put(ByteBuffer src, int length) { Put(src._array, src._position, length); src._position += length; }