HandleResult OnReceive(IntPtr connId, byte[] bytes) { // 数据到达了 try { // 获取附加数据 ClientInfo clientInfo = extra.Get(connId); if (clientInfo != null) { // clientInfo 就是accept里传入的附加数据了 AddMsg(string.Format(" > [{0},OnReceive] -> {1}:{2} ({3} bytes)", clientInfo.ConnId, clientInfo.IpAddress, clientInfo.Port, bytes.Length)); } else { AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", connId, bytes.Length)); } if (server.Send(connId, bytes, bytes.Length)) { return(HandleResult.Ok); } return(HandleResult.Error); } catch (Exception) { return(HandleResult.Ignore); } }
HandleResult OnReceive(IntPtr connId, byte[] bytes) { // 数据到达了 try { // 获取附加数据 IntPtr clientPtr = IntPtr.Zero; if (server.GetConnectionExtra(connId, ref clientPtr)) { // ci 就是accept里传入的附加数据了 ClientInfo ci = (ClientInfo)Marshal.PtrToStructure(clientPtr, typeof(ClientInfo)); AddMsg(string.Format(" > [{0},OnReceive] -> {1}:{2} ({3} bytes)", ci.ConnId, ci.IpAddress, ci.Port, bytes.Length)); } else { AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", connId, bytes.Length)); } if (server.Send(connId, bytes, bytes.Length)) { return(HandleResult.Ok); } return(HandleResult.Error); } catch (Exception) { return(HandleResult.Ignore); } }