public static int RRecv(int argc, [In, Out, MarshalAs(UnmanagedType.LPArray, SizeConst = SharpC.maxArgs)] SharpC.CSObject[] argv) { UnityEngine.Debug.Assert(argv[1].type == SharpC.CSType.SHARPOBJECT); Rudp u = (Rudp)SharpC.cache.Get(argv[1].v32); IntPtr buffer = argv[2].ptr; int len = argv[3].v32; if (u.OnRecv != null) { Marshal.Copy(buffer, _recvBuffer, 0, len); u.OnRecv(_recvBuffer, 0, len); } return(0); }
public static int RSend(int argc, [In, Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 8)] SharpC.CSObject[] argv, int args, int res) { UnityEngine.Debug.Assert(args >= 3); UnityEngine.Debug.Assert(argv[1].type == SharpC.CSType.SHARPOBJECT); Rudp u = (Rudp)SharpC.cache.Get(argv[1].v32); IntPtr buffer = argv[2].ptr; int len = argv[3].v32; if (u.OnSend != null) { Marshal.Copy(buffer, _sendBuffer, 0, len); u.OnSend(_sendBuffer, 0, len); } return(0); }